Java Spring Boot嵌入式Tomcat-找不到有效的证书路径

Java Spring Boot嵌入式Tomcat-找不到有效的证书路径,java,spring-boot,tomcat,Java,Spring Boot,Tomcat,我有一个有趣的问题,我还没有找到解决办法。我有一个Spring引导应用程序正在尝试连接到第三方API。当我使用嵌入式Tomcat服务器在本地运行此应用程序时,尝试连接到此第三方API失败,出现以下异常: org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://<third party API endpoint>": sun.secur

我有一个有趣的问题,我还没有找到解决办法。我有一个Spring引导应用程序正在尝试连接到第三方API。当我使用嵌入式Tomcat服务器在本地运行此应用程序时,尝试连接到此第三方API失败,出现以下异常:

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://<third party API endpoint>": sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; 
nested exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
org.springframework.web.client.ResourceAccessException:GET请求“https://”时发生I/O错误:sun.security.validator.validator异常:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径;
嵌套异常为javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径
我已经将第三方API的证书导入到本地JDK的密钥库中,如果我在另一个应用服务器(如Weblogic)上运行此应用程序,那么它将按预期执行。我似乎无法让Spring Boot嵌入式Tomcat服务器正常工作


任何建议都将不胜感激。

请检查您的java_主页和路径中的java.exe是否指向相同的安装。通常我们有多个jre,很多时候证书被安装到不同的jre中,然后运行。可能会检查流程并确保它使用的jre与证书相同(甚至可能尝试jconsole进行验证)

结果发现我的问题是缺少一个三级中间证书,我需要通过公司防火墙才能获得该证书。为了解决这个问题,我启用了SSL调试,以便能够找到丢失的证书。我通过在应用程序中添加以下VM参数来实现这一点:

-Djavax.net.debug=SSL

当我看到有一个三级证书时,我将该证书导入到我的JDK中,并poof…问题解决了。

是否也可以针对Jetty或Glassfish进行测试?我以前在使用Oracle的JDK与OpenJDK或IBM等其他产品时遇到过证书问题。。。。