2014-06-23 64 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不同? –