2011-12-07 221 views
2

我需要訪問需要雙向SSL的WebService,我的客戶端(及其服務器)具有自簽名證書。具有自簽名證書的雙向SSL客戶端

我只有下面的代碼:

System.setProperty("javax.net.ssl.keyStore", "path/myClient.key"); 
System.setProperty("javax.net.ssl.keyStorePassword", "pass"); 
System.setProperty("javax.net.ssl.keyStoreType", "JKS"); 
System.setProperty("javax.net.ssl.trustStore", "path/myClient.truststore"); 
System.setProperty("javax.net.ssl.trustStorePassword", "pass"); 
System.setProperty("com.sun.net.ssl.dhKeyExchangeFix", "true"); 

我複製TrustModifier接受這裏的自簽名證書: http://java.dzone.com/articles/ignoring-self-signed

不過,我仍然不能整件事融入HttpClient連接成功。

任何幫助?

+0

如果您的商店中有證書,則不得使用TrustModifier。 TrustModifier只是禁用證書檢查。並請描述您所得到的異常/錯誤消息。 – kan

+0

如果您的客戶端證書是自簽名的,您還需要更改服務器上的信任設置。不要放鬆信任設置,通常最好將自簽名證書明確導入各自的信任庫(否則,使用SSL幾乎沒有意義)。 – Bruno

回答

1

您的服務器還需要信任您的客戶端的證書,以便在服務器端成功握手。將客戶的證書導入服務器的信任庫。

相關問題