1.第一種就是報錯咱繞開驗證這個環節
先創建一個類 MyX509TrustManager
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
public class MyX509TrustManager implements X509TrustManager{
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public X509Certificate[] getAcceptedIssuers() {
// TODO Auto-generated method stub
return null;
}
}
然後發送請求HttpURLConnection 的方式
SSLContext sslcontext = SSLContext.getInstance("SSL","SunJSSE");
sslcontext.init(null, new TrustManager[]{new MyX509TrustManager()}, new java.security.SecureRandom());
URL url = new URL(urlPath);
HostnameVerifier ignoreHostnameVerifier = new HostnameVerifier() {
public boolean verify(String s, SSLSession sslsession) {
System.out.println("WARNING: Hostname is not matched for cert.");
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(ignoreHostnameVerifier);
HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory());
//這邊是HttpURLConnection
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
如果一頭霧水傳送門
2.方法2就是正面剛,就是要搞證書 https接口測試:java導入cer證書步驟
有個注意點就是執行
keytool -import -alias cacerts -keystore cacerts -file C:\Users\Administrator\Desktop\onecc.cer -trustcacerts
這個加紅的是你的cer 名字。
並且執行這個語句的時候必須在你的
D:\jdk1.7.0_80\jre\lib\security 這個下面執行
系統是windows 恰巧你的環境變量不在c 盤
這樣進入你對應的盤 不要cd 坑人!
最後補充一下查詢你的證書有沒有安裝上的代碼
keytool -list -keystore cacerts | findstr /s zrzf
有錯誤歡迎指正。
記得按時吃飯
by 張小白