我在一个tomcat服务器(v8)中运行了两个servlet(A和B)。他们俩都需要和第三方界面交流。
A正在使用包含所有凭据信息的keystore.xml(使用Keystore.jar)并调用第三方(A1)jar函数来发送请求并获得响应。
B正在使用第三方(B1)的webservice并将ssl密钥库设置如下。 System.setProperty(" javax.net.ssl.keyStoreType"," JKS"); System.setProperty(" javax.net.ssl.keyStore"," C:\ test.jks"); System.setProperty(" javax.net.ssl.keyStorePassword"," test");
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore", "C:\\test.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "test");
我遇到的问题是如果我运行serlvet A然后A会工作但B会有错误" javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun .security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径"。
如果我先运行B,那么B工作正常,但A会有同样的错误。看起来有冲突吗? 我不明白为什么会这样。在重新启动tomcat后,每次在密钥存储文件中丢失证书似乎都没有,因此A或B工作正常。
希望我能清楚地描述我的问题并感谢你的帮助。