Java Tomcat SSL:找不到请求目标的有效证书路径

Java Tomcat SSL:找不到请求目标的有效证书路径,java,tomcat,ssl,ssl-certificate,pki,Java,Tomcat,Ssl,Ssl Certificate,Pki,我正在尝试访问我的应用程序中的url,但遇到此错误 1771426 [http-bio-8180-exec-15] ERROR gadget.GadgetValidatorServlet - wsdl.exception.WSInvokerException: wsdl.exception.WSInvokerException: javax.xml.ws.soap.SOAPFaultException: javax.net.ssl.SSLHandshakeException: sun.secu

我正在尝试访问我的应用程序中的url,但遇到此错误

1771426 [http-bio-8180-exec-15] ERROR gadget.GadgetValidatorServlet  - wsdl.exception.WSInvokerException: wsdl.exception.WSInvokerException: javax.xml.ws.soap.SOAPFaultException: 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
1771426 [http-bio-8180-exec-15] ERROR gadget.GadgetPortalValidatorServlet  - gadget.exception.GadgetValidatorException: wsdl.exception.WSInvokerException: wsdl.exception.WSInvokerException: javax.xml.ws.soap.SOAPFaultException: 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
我已尝试应用所有这些修复,但没有成功:

很快,它需要运行InstallCert应用程序(java InstallCert my.domain.com)并生成文件jssecacerts。之后,我将该文件复制并粘贴到/opt/java/jdk1.7.0_45/jre/lib/security/jssecacerts中

我还将我的证书(ssl url(httpd)中使用的证书)导入到tomcat使用的密钥库中

即使在那之后,我仍然得到这个错误

1771426 [http-bio-8180-exec-15] ERROR gadget.GadgetValidatorServlet  - wsdl.exception.WSInvokerException: wsdl.exception.WSInvokerException: javax.xml.ws.soap.SOAPFaultException: 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
1771426 [http-bio-8180-exec-15] ERROR gadget.GadgetPortalValidatorServlet  - gadget.exception.GadgetValidatorException: wsdl.exception.WSInvokerException: wsdl.exception.WSInvokerException: javax.xml.ws.soap.SOAPFaultException: 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

有什么想法吗?

我过去可以通过在运行时将
javax.net.ssl.trustStore
系统属性设置为指向
jssecacerts
文件来解决这个问题。只是把它放在“正确”的地方对我来说从来都不起作用;我必须明确地设置位置。不管怎么说,这更便于携带,所以如果你的应用程序需要移动,我通常会推荐它

System.setProperty("javax.net.ssl.trustStore", "/path/to/jssecacerts");

您应该已将其导入Tomcat使用的信任库中。我已将其导入我的密钥库,该密钥库是在Tomcat connect配置中导入的。