|
|
@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
package cn.keking.utils;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.net.ssl.*;
|
|
|
|
|
|
|
|
import java.security.cert.CertificateException;
|
|
|
|
|
|
|
|
import java.security.cert.X509Certificate;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* @author 鞠玉果
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public class SslUtils {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static void trustAllHttpsCertificates() throws Exception {
|
|
|
|
|
|
|
|
TrustManager[] trustAllCerts = new TrustManager[1];
|
|
|
|
|
|
|
|
TrustManager tm = new miTM();
|
|
|
|
|
|
|
|
trustAllCerts[0] = tm;
|
|
|
|
|
|
|
|
SSLContext sc = SSLContext.getInstance("SSL");
|
|
|
|
|
|
|
|
sc.init(null, trustAllCerts, null);
|
|
|
|
|
|
|
|
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static class miTM implements TrustManager, X509TrustManager {
|
|
|
|
|
|
|
|
public X509Certificate[] getAcceptedIssuers() {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void checkClientTrusted(X509Certificate[] certs, String authType) throws CertificateException {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 忽略HTTPS请求的SSL证书,必须在openConnection之前调用
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static void ignoreSsl() throws Exception {
|
|
|
|
|
|
|
|
HostnameVerifier hv = (urlHostName, session) -> true;
|
|
|
|
|
|
|
|
trustAllHttpsCertificates();
|
|
|
|
|
|
|
|
HttpsURLConnection.setDefaultHostnameVerifier(hv);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|