2014-06-23 62 views
1

我试图使用相互身份验证(客户端和服务器上的证书),但我然后得到此错误: javax.net.ssl.SSLHandshakeException:sun.security.validator。 ValidatorException:PKIX路径建设失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求的目标的有效证书路径客户端与Spring-WS的SSL

然后我发现这个类,我想作为一个messageSender,和使用: HttpsUrlConnectionMessageSender

但我无法弄清楚如何设置我用javax.net.ssl属性配置的密钥库和信任库。 如果可能,我想在spring xml文件中做这个设置,以便它可以动态配置。

回答

0

结帐在这里。

您只需生成证书并放入JRE库路径中,不需要使用任何消息发送方。

http://www.mkyong.com/webservices/jax-ws/suncertpathbuilderexception-unable-to-find-valid-certification-path-to-requested-target/

证书生成https://code.google.com/p/java-use-examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.java

然后,如果你面对这个异常java.security.cert.CertificateException

然后,只需覆盖验证 static { HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { // HOST_ADDRESS = Endpoint host address if (hostname.equals(HOST_ADDRESS)) return true; return false; } }); }

+0

它是如何从密钥工具 - 导入-trustedcacerts不同? –