HttpClient4.3 關於https 中SSL證書請求問題
阿新 • • 發佈:2019-01-29
廢話不說 直接上程式碼 這裡我使用的CloseableHttpClient這個實現類
呼叫此方法建立CloseableHttpClient 即可信任所有https SSL證書
SSLConnectionSocketFactory 中設定允許所有主機名稱就可以忽略主機名稱驗證
private static CloseableHttpClient buildSSLCloseableHttpClient() throws Exception { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { //信任所有 public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); //ALLOW_ALL_HOSTNAME_VERIFIER:這個主機名驗證器基本上是關閉主機名驗證的,實現的是一個空操作,並且不會丟擲javax.net.ssl.SSLException異常。 SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[] { "TLSv1" }, null, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); return HttpClients.custom().setSSLSocketFactory(sslsf).build(); }