简体   繁体   English

无效的密钥库格式:java.io.IOException:无效的密钥库格式

[英]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.

相关问题 java.io.IOException:无效的密钥库格式 - java.io.IOException: Invalid Keystore format SSL Java java.io.IOException:密钥库格式无效 - SSL Java java.io.IOException: Invalid keystore format javamail java.io.IOException:无效的密钥库格式 - javamail java.io.IOException: Invalid keystore format Java.io.IOException:定制Web服务器的无效密钥库格式 - Java.io.IOException: Invalid keystore format for custom web server java.io.IOException:使用 Tomcat 服务器的密钥库格式无效 - java.io.IOException: Invalid keystore format using Tomcat server 密钥工具错误:java.io.IOException:密钥库格式无效 - keytool error: java.io.IOException: Invalid keystore format Tomcat java.io.IOException:通过 Classloader 加载密钥库时密钥库格式无效 - Tomcat java.io.IOException: Invalid keystore format when loading keystore via Classloader java.io.IOException:无效的密钥库格式/无法识别的密钥库格式。 使用旧的 android 密钥库时,请以指定的类型加载它 - java.io.IOException: Invalid keystore format / Unrecognized keystore format. Please load it with a specified type, when using an old android keystore 生成最终归档文件时出现错误:java.io.IOException:无效的密钥库格式 - Getting Error generating final archive: java.io.IOException: Invalid keystore format java.io.IOException:使用 .cer 文件对 pdf 进行数字签名时获取的密钥库格式无效 - java.io.IOException: Invalid keystore format getting while signing pdf digitally using .cer file
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM