[英]Invalid keystore format: java.io.IOException: Invalid keystore format
I have generated the certificate from the below command我已从以下命令生成证书
Openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"
and then in client machine import like this然后在客户端机器中像这样导入
keytool -import -file C:\Code_Base\Certificates\NGINX_150\tls.crt -storepass changeit -keystore "C:\Program Files\Java\jdk1.8.0_152\jre\lib\security\cacerts" -alias nginxsvc
and in Standalone.xml file of Jboss server added并在 Jboss 服务器的 Standalone.xml 文件中添加
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" enable-lookups="false" secure="true">
<ssl name="ssl" password="changeit" certificate-key-file="C:\Code_Base\Certificates\NGINX_150\tls.key"/>
</connector>
But when server starting i am getting但是当服务器启动时我得到
11:12:17,279 ERROR [org.apache.tomcat.util] (MSC service thread 1-3) JBWEB003003: Failed to load keystore type JKS with path C:\\Code_Base\\Certificates\\NGINX_150\\tls.key due to Invalid keystore format: java.io.IOException: Invalid keystore format at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658) [rt.jar:1.8.0_152] at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56) [rt.jar:1.8.0_152] at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224) [rt.jar:1.8.0_152] at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70) [rt.jar:1.8.0_152] at java.security.KeyStore.load(KeyStore.java:1445) [rt.jar:1.8.0_152] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:350) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:265) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-
11:12:17,279 错误 [org.apache.tomcat.util](MSC 服务线程 1-3)JBWEB003003:由于密钥库格式无效,无法加载路径为 C:\\Code_Base\\Certificates\\NGINX_150\\tls.key 的密钥库类型 JKS : java.io.IOException: 在 sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658) [rt.jar:1.8.0_152] 的无效密钥库格式在 sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore .java:56) [rt.jar:1.8.0_152] 在 sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224) [rt.jar:1.8.0_152] 在 sun.security.provider.JavaKeyStore$DualFormatJKS .engineLoad(JavaKeyStore.java:70) [rt.jar:1.8.0_152] 在 java.security.KeyStore.load(KeyStore.java:1445) [rt.jar:1.8.0_152] 在 org.apache.tomcat.util .net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:350) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.tomcat.util.net .jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:265) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat- 1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:480) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:417) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:180) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:973) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:174) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.catalina.connector.Connector.init(Connector.java:986) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:318) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] at org.jboss.msc.service.Servi
1] 在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:480) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:417) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org .apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:180) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache .tomcat.util.net.JioEndpoint.init(JioEndpoint.java:973) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.coyote.http11 .Http11Protocol.init(Http11Protocol.java:174) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.catalina.connector.Connector.init(Connector .java:986) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:318) [ jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] 在 org.jboss.msc.service.Servi ceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_152] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152] at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_152]
ceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] 在 org.jboss.msc.service.ServiceControllerImpl$ StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1149) [rt.jar:1.8.0_152] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152] 在 java.lang.Thread.run( Thread.java:748) [rt.jar:1.8.0_152]
11:12:17,283 ERROR [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-3) JBWEB003043: Error initializing endpoint: java.io.IOException: Invalid keystore format at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658) [rt.jar:1.8.0_152] at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56) [rt.jar:1.8.0_152] at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224) [rt.jar:1.8.0_152] at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70) [rt.jar:1.8.0_152] at java.security.KeyStore.load(KeyStore.java:1445) [rt.jar:1.8.0_152] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:350) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:265) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JS
11:12:17,283 错误 [org.apache.coyote.http11.Http11Protocol](MSC 服务线程 1-3)JBWEB003043:初始化端点时出错:java.io.IOException:sun.security.provider.JavaKeyStore.engineLoad 处的密钥库格式无效(JavaKeyStore.java:658) [rt.jar:1.8.0_152] 在 sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56) [rt.jar:1.8.0_152] 在 sun.security.provider .KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224) [rt.jar:1.8.0_152] 在 sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70) [rt.jar:1.8.0_152] 在 java .security.KeyStore.load(KeyStore.java:1445) [rt.jar:1.8.0_152] 在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:350) [jbossweb-7.5. 7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:265) [jbossweb-7.5.7. Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JS SESocketFactory.java:480) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:417) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:180) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:973) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:174) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.apache.catalina.connector.Connector.init(Connector.java:986) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:318) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980)
SESocketFactory.java:480) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory. java:417) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java: 180) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.tomcat.util.net.JioEndpoint.init(JioEndpoint.java:973) [jbossweb -7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:174) [jbossweb-7.5.7.Final -redhat-1.jar:7.5.7.Final-redhat-1] 在 org.apache.catalina.connector.Connector.init(Connector.java:986) [jbossweb-7.5.7.Final-redhat-1.jar :7.5.7.Final-redhat-1] 在 org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:318) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5 .0.Final-redhat-21] 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_152] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152] at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_152]
[jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss -msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_152 ] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152] 在 java.lang.Thread.run(Thread.java:748) [rt.jar:1.8 .0_152]
11:12:17,289 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-2) JBWEB003001: Coyote HTTP/1.1 initializing on : http-/0.0.0.0:8080 11:12:17,297 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-2) JBWEB003000: Coyote HTTP/1.1 starting on: http-/0.0.0.0:8080 11:12:17,311 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.web.connector.https: org.jboss.msc.service.StartException in service jboss.web.connector.https: JBAS018007: Error starting web connector at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:393) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
11:12:17,289 INFO [org.apache.coyote.http11.Http11Protocol](MSC 服务线程 1-2)JBWEB003001:Coyote HTTP/1.1 初始化:http-/0.0.0.0:8080 11:12:17,297 INFO .apache.coyote.http11.Http11Protocol](MSC 服务线程 1-2)JBWEB003000:Coyote HTTP/1.1 开始于:http-/0.0.0.0:8080 11:12:17,311 错误 [org.jboss.msc.service.fail ](MSC 服务线程 1-3)MSC000001:无法启动服务 jboss.web.connector.https:org.jboss.msc.service.StartException in service jboss.web.connector.https:JBAS018007:在 org 启动 Web 连接器时出错.jboss.as.web.WebConnectorService.start(WebConnectorService.java:393) 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat -1.jar:1.1.5.Final-redhat-1] 在 org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1 .jar:1.1.5.Final-redhat-1] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool Executor.java:1149) [rt.jar:1.8.0_152] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152] at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_152] Caused by: LifecycleException: JBWEB000023: Protocol handler initialization failed at org.apache.catalina.connector.Connector.init(Connector.java:989) at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:318) ... 5 more
Executor.java:1149) [rt.jar:1.8.0_152] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_152] 在 java.lang.Thread。 run(Thread.java:748) [rt.jar:1.8.0_152] 导致:LifecycleException:JBWEB000023:org.apache.catalina.connector.Connector.init(Connector.java:989) 处的协议处理程序初始化失败。 jboss.as.web.WebConnectorService.start(WebConnectorService.java:318) ... 5 更多
One possibility to consider is the mismatch of keystore types.需要考虑的一种可能性是密钥库类型不匹配。
You may check the keystore type of your existing keystore as follows:您可以按如下方式检查现有密钥库的密钥库类型:
keytool -list -keystore <path/to/keystore>
This should display the Keystore type value in the output like这应该在输出中显示密钥库类型值,如
Keystore type: PKCS12
密钥库类型:PKCS12
This may be different to the default keystore type ( JKS in your case) that it is expecting这可能与它期望的默认密钥库类型(在您的情况下为JKS )不同
If so, use the appropriate keystoreType attribute in your tomcat server configuration to match your key store如果是这样,请在您的 tomcat 服务器配置中使用适当的 keystoreType 属性来匹配您的密钥库
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreType="PKCS12"
keystoreFile="path/to/keystore" keystorePass="changeit" />
使用存储类型参数运行 keytool:
"%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA -storetype JKS
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.