Java SSL和truststore导致jsseUtil.trustedCertNotValid警告
我已经在PKCS12密钥库中设置了一个Spring引导应用程序来利用HTTPS和证书(非自签名) 我创建的密钥库如下所示:Java SSL和truststore导致jsseUtil.trustedCertNotValid警告,java,spring-boot,ssl,tomcat,Java,Spring Boot,Ssl,Tomcat,我已经在PKCS12密钥库中设置了一个Spring引导应用程序来利用HTTPS和证书(非自签名) 我创建的密钥库如下所示: openssl pkcs12 -export -inkey key -in cert -certfile interm -out tls-keystore.p12 -name tomcat 配置属性: server.ssl.key-store=/etc/app/tls-keystore.p12 server.ssl.key-store-password=password
openssl pkcs12 -export -inkey key -in cert -certfile interm -out tls-keystore.p12 -name tomcat
配置属性:
server.ssl.key-store=/etc/app/tls-keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=tomcat
我使用的是一个信任存储(一个不同的文件),它是默认JVM密钥库的副本,插入了两个额外的证书(因此我们可以与使用自签名证书的本地服务进行对话)
SSL正常工作,但日志中有许多警告:
2020-03-12 13:23:14.842警告11572---[main]org.apache.tomcat.util.net.SSLUtilBase:jsseUtil.trustedCertNotValid
其中有30个。它们似乎不能对应于我创建的密钥库中的证书,因为它只有一个条目
查看代码,该警告似乎旨在作为更具信息性的消息呈现,但失败了:
如果关闭SSL或备用信任存储,则不会显示警告
我确实启用了调试:-Djavax.net.debug=ssl:handshake:keymanager:trustmanager-Djava.security.debug=jca,certpath,provider
这导致记录了相当多的额外信息,但没有一个与所讨论的警告相邻
是什么导致了这些警告?我应该如何处理它们?您是否也配置了
server.ssl.trust store
?听起来错误似乎来自于此。在生成消息的代码中放置一个断点,然后从那里跟踪消息。如果它使用的是常见的Java内置证书验证算法,那么您可以通过将环境变量设置为类似以下内容来跟踪发生的情况:Java_TOOL_OPTIONS=-Djavax.net.debug=ssl:handshake:keymanager:trustmanager-Djava.security.debug=jca、certpath、provider再加一点,当OSCP和CRL都不可用作验证方法时,我曾看到其他有效证书未通过验证。但我的案例是关于Jetty的。它是OCSP,而不是OSCP。看起来它们的有效期已经过期,至少从代码捕获的异常来看是这样。使用其他工具检查证书,如keytool-list
。