我正在創建一個將客戶端敏感信息發送到Tomcat服務器的Java客戶端程序。所以我需要使用SSL連接,因此信息將被加密。來自Java客戶端的SSL連接
我需要使用自簽名不受信任的證書,但有問題從java客戶端進行連接。
我已成功設置Tomcat 5.5以使用SSL並通過Firefox進行測試,該Firefox會顯示自簽名證書的警告。
我跟着的Tomcat 5.5 SSL設置,他們提到創建密鑰庫:
keytool -genkey -alias tomcat -keyalg RSA
然後我做了上述的出口:
keytool -export -keystore .keystore -alias tomcat -file localhost.cer
然後我做了上述證書的導入到客戶機:
keytool -import -alias tomcat -file localhost.cer -keystore "C:\Program Files"\Java\jdk1.6.0_17\jre\lib\security\cacerts"
但是運行客戶端時,我得到:
異常線程 「main」 javax.net。 ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路徑構建失敗:sun.security.provider.certpath.SunCertPathBuilderException:找不到要求的目標的有效證書路徑
這是客戶端代碼:
URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
現在我剛剛開始使用這些證書玩,我是新來的密鑰庫,所以請耐心等待。
有人可以請解釋如何導出和導入在Tomcat中創建的證書到客戶機?
謝謝。
也許您導入了錯誤的證書,或者您可能將其導入了錯誤的JRE。許多人在他們的機器上有多個JRE。你應該列出cacerts的內容,看看你的證書是否在那裏。另外,您可以設置系統屬性java.net.debug = all來查看有關證書發送和檢查部分的更多詳細信息。 – 2010-02-10 23:25:12