SSLSocketClientUtil.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.happy.common.http;
  2. import javax.net.ssl.*;
  3. import java.security.KeyManagementException;
  4. import java.security.NoSuchAlgorithmException;
  5. import java.security.SecureRandom;
  6. import java.security.cert.CertificateException;
  7. import java.security.cert.X509Certificate;
  8. /**
  9. * @author wcy
  10. * @date 2020/3/4
  11. * 为了支持okhttp 绕过验签功能
  12. **/
  13. public class SSLSocketClientUtil {
  14. public static SSLSocketFactory getSocketFactory(TrustManager manager) {
  15. SSLSocketFactory socketFactory = null;
  16. try {
  17. SSLContext sslContext = SSLContext.getInstance("SSL");
  18. sslContext.init(null, new TrustManager[]{manager}, new SecureRandom());
  19. socketFactory = sslContext.getSocketFactory();
  20. } catch (NoSuchAlgorithmException e) {
  21. e.printStackTrace();
  22. } catch (KeyManagementException e) {
  23. e.printStackTrace();
  24. }
  25. return socketFactory;
  26. }
  27. public static X509TrustManager getX509TrustManager() {
  28. return new X509TrustManager() {
  29. @Override
  30. public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
  31. }
  32. @Override
  33. public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
  34. }
  35. @Override
  36. public X509Certificate[] getAcceptedIssuers() {
  37. return new X509Certificate[0];
  38. }
  39. };
  40. }
  41. public static HostnameVerifier getHostnameVerifier() {
  42. HostnameVerifier hostnameVerifier = new HostnameVerifier() {
  43. @Override
  44. public boolean verify(String s, SSLSession sslSession) {
  45. return true;
  46. }
  47. };
  48. return hostnameVerifier;
  49. }
  50. }