Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SSL和truststore导致jsseUtil.trustedCertNotValid警告_Java_Spring Boot_Ssl_Tomcat - Fatal编程技术网

Java SSL和truststore导致jsseUtil.trustedCertNotValid警告

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

我已经在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
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