javax.net.ssl.SSLException 兩種解決方法 鏈接https接口

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 張小白

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章