【Android】【网络请求】OkHttp设置万能SSL证书,允许所有https请求

SSL证书管理器


	public class SSL {
	
	    @SneakyThrows
	    public static SSLSocketFactory sslSocketFactory() {
	        SSLContext sslContext = SSLContext.getInstance("SSL");
	        sslContext.init(null, getTrustManager(), new SecureRandom());
	        return sslContext.getSocketFactory();
	    }
	
	    public static X509TrustManager trustManager() {
	        return new X509TrustManager() {
	            @Override
	            public void checkClientTrusted(X509Certificate[] x509Certificates, String message) {
	            }
	
	            @Override
	            public void checkServerTrusted(X509Certificate[] x509Certificates, String message) {
	            }
	
	            @Override
	            public X509Certificate[] getAcceptedIssuers() {
	                return new X509Certificate[]{};
	            }
	        };
	    }
	
	    private static TrustManager[] getTrustManager() {
	        return new TrustManager[]{new X509TrustManager() {
	            @Override
	            public void checkClientTrusted(X509Certificate[] x509Certificates, String message) {
	            }
	
	            @Override
	            public void checkServerTrusted(X509Certificate[] x509Certificates, String message) {
	            }
	
	            @Override
	            public X509Certificate[] getAcceptedIssuers() {
	                return new X509Certificate[]{};
	            }
	        }};
	    }
	
	    public static HostnameVerifier hostnameVerifier() {
	        return (message, hostnameVerifier) -> true;
	    }
	
	}

OkHttp设置证书管理器


	 clientBuilder.sslSocketFactory(SSL.sslSocketFactory(), SSL.trustManager());
	 clientBuilder.hostnameVerifier(SSL.hostnameVerifier());

点赞