1. 程式人生 > >HTTPS雙向認證

HTTPS雙向認證

recv failed https雙向認證

如果需要只支持https可參照

版本說明

httpclinet:4.3.1
jdk:1.6
tomcat:6

https雙向認證

參考文章

https://blog.csdn.net/zhongming_software/article/details/8592331 按照該文章所寫代碼會報如下錯誤
技術分享圖片

解決辦法

參照http://blog.51cto.com/2074199/2088928,然後將sslcontext改成如下代碼

InputStream ksis = new FileInputStream(new File("client.p12的路徑"));
InputStream tsis = new FileInputStream(new File("server.jks的路徑"));
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(ksis, "storepass密碼".toCharArray());
KeyStore ts = KeyStore.getInstance("JKS");
ts.load(tsis, "storepass密碼".toCharArray());
sslcontext = SSLContexts.custom().loadKeyMaterial(ks, "keypass".toCharArray()).loadTrustMaterial(ts, new TrustSelfSignedStrategy()).build();

loadKeyMaterial()重載方法是加載客戶端證書用的
loadTrustMaterial()重載方法是加載服務器端相關信息用的(我們就是使用 new TrustSelfSignedStrategy()方法自己實現了一個信任策略,不對服務器端的證書進行校驗)

HTTPS雙向認證