OKHttp HTTPS 请求支持所有Https服务器 证书验证忽略客户端证书,(3)

来源:互联网 发布:python元组和列表 编辑:程序博客网 时间:2024/06/09 16:55

不对客户端证书校验,默认通过所有的验证。

import android.content.Context;import java.security.GeneralSecurityException;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSession;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.X509TrustManager;import okhttp3.OkHttpClient;public final class CustomTrust {  public static final String tag = "CustomTrust";  private static final String CLIENT_KET_PASSWORD = "213679301700631";  public final OkHttpClient client;  Context context;  public CustomTrust(Context context)  {    this.context = context;    X509TrustManager trustManager;    SSLSocketFactory sslSocketFactory=null;    trustManager = new X509TrustManager() {      @Override      public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {      }      @Override      public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {      }      @Override      public X509Certificate[] getAcceptedIssuers() {        return new X509Certificate[0];      }    };    try {       SSLContext sslContext;      sslContext = SSLContext.getInstance("SSL");      sslContext.init(null,new X509TrustManager[]{trustManager},null);      sslSocketFactory = sslContext.getSocketFactory();    } catch (GeneralSecurityException e) {      throw new RuntimeException(e);    }    client = new OkHttpClient.Builder()        .sslSocketFactory(sslSocketFactory).hostnameVerifier(new HostnameVerifier() {              @Override              public boolean verify(String hostname, SSLSession session) {                return true;              }            })        .build();  }}
2 0
原创粉丝点击