|
@@ -0,0 +1,64 @@
|
|
|
+package com.zskk.tools;
|
|
|
+
|
|
|
+import javax.net.ssl.*;
|
|
|
+import java.security.KeyStore;
|
|
|
+import java.security.SecureRandom;
|
|
|
+import java.security.cert.X509Certificate;
|
|
|
+import java.util.Arrays;
|
|
|
+
|
|
|
+
|
|
|
+public class SSLSocketClient {
|
|
|
+
|
|
|
+ //获取这个SSLSocketFactory
|
|
|
+ public static SSLSocketFactory getSSLSocketFactory() {
|
|
|
+ try {
|
|
|
+ SSLContext sslContext = SSLContext.getInstance("SSL");
|
|
|
+ sslContext.init(null, getTrustManager(), new SecureRandom());
|
|
|
+ return sslContext.getSocketFactory();
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取TrustManager
|
|
|
+ private static TrustManager[] getTrustManager() {
|
|
|
+ return new TrustManager[]{
|
|
|
+ new X509TrustManager() {
|
|
|
+ @Override
|
|
|
+ public void checkClientTrusted(X509Certificate[] chain, String authType) {
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void checkServerTrusted(X509Certificate[] chain, String authType) {
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public X509Certificate[] getAcceptedIssuers() {
|
|
|
+ return new X509Certificate[]{};
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取HostnameVerifier
|
|
|
+ public static HostnameVerifier getHostnameVerifier() {
|
|
|
+ return (s, sslSession) -> true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static X509TrustManager getX509TrustManager() {
|
|
|
+ X509TrustManager trustManager = null;
|
|
|
+ try {
|
|
|
+ TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
|
|
|
+ trustManagerFactory.init((KeyStore) null);
|
|
|
+ TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
|
|
|
+ if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
|
|
|
+ throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));
|
|
|
+ }
|
|
|
+ trustManager = (X509TrustManager) trustManagers[0];
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ return trustManager;
|
|
|
+ }
|
|
|
+}
|