2014-01-28 77 views

回答

0

我認爲 「正常」 的代碼初始化SSLContext將工作。

示例如何加載信任:

String path = .... 
char[] password = .... 
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); 
keyStore.load(new FileInputStream(path), password); 
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
tmf.init(keyStore); 
SSLContext ctx = SSLContext.getInstance("SSL"); 
ctx.init(null, tmf.getTrustManagers(), null); 

如果您還需要客戶端證書密鑰庫,以類似的方式使用KeyStoreFactory或實施KeyManager

+0

難道我不需要添加密鑰庫和TrustStore到ClientConfig,比如Jersey客戶端? // import com.sun.jersey.api.client.config.ClientConfig; // import com.sun.jersey.api.client.config.DefaultClientConfig; ClientConfig config = new DefaultClientConfig(); (),HTTPSProperties.PROPERTY_HTTPS_PROPERTIES,new HTTPSProperties(getHostnameVerifier(),getSSLContext()));這個方法可以用來創建一個新的HTTPSProperties對象。 – DarVar

+0

據我記得,默認使用HttpsURLConnection,這意味着將使用默認的SSLContext。 – Tarlog

+0

您可以配置到眨眼使用Apache HTTP客戶端,在這種情況下,你需要SSL配置傳遞到客戶端 – Tarlog

相關問題