package com.stylefeng.guns.core.util; import javax.net.ssl.SSLContext; import java.security.cert.X509Certificate; @SuppressWarnings({"Convert2Lambda"}) public class SslUtils { private static void trustAllHttpsCertificates() throws Exception { javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1]; javax.net.ssl.TrustManager tm = new miTM(); trustAllCerts[0] = tm; SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, null); javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } @SuppressWarnings({"unused", "RedundantThrows"}) static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager { public X509Certificate[] getAcceptedIssuers() { return null; } public boolean isServerTrusted(X509Certificate[] certs) { return true; } public boolean isClientTrusted(X509Certificate[] certs) { return true; } public void checkServerTrusted(X509Certificate[] certs, String authType) throws java.security.cert.CertificateException { } public void checkClientTrusted(X509Certificate[] certs, String authType) throws java.security.cert.CertificateException { } } /** * 忽略SSL证书校验 * @throws Exception e */ public static void ignoreSsl() throws Exception { javax.net.ssl.HostnameVerifier hv = new javax.net.ssl.HostnameVerifier() { public boolean verify(String urlHostName, javax.net.ssl.SSLSession session) { return true; } }; trustAllHttpsCertificates(); javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(hv); } }