美文网首页
Okhttp3信任所有证书设置

Okhttp3信任所有证书设置

作者: CK07 | 来源:发表于2016-05-09 17:13 被阅读11592次
OkHttpClient.Builder mBuilder=mBuilder = new OkHttpClient.Builder();
mBuilder.sslSocketFactory(createSSLSocketFactory());
mBuilder.hostnameVerifier(new TrustAllHostnameVerifier());
mBuilder.build();
/**
 * 默认信任所有的证书
 * TODO 最好加上证书认证,主流App都有自己的证书
 *
 * @return
 */
@SuppressLint("TrulyRandom")
private static SSLSocketFactory createSSLSocketFactory() {

    SSLSocketFactory sSLSocketFactory = null;

    try {
        SSLContext sc = SSLContext.getInstance("TLS");
        sc.init(null, new TrustManager[]{new TrustAllManager()},
                new SecureRandom());
        sSLSocketFactory = sc.getSocketFactory();
    } catch (Exception e) {
    }

    return sSLSocketFactory;
}

private static class TrustAllManager implements 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 null;
    }
}

private static class TrustAllHostnameVerifier implements HostnameVerifier {
    @Override
    public boolean verify(String hostname, SSLSession session) {
      return new X509Certificate[0];
    }
}

参考链接

相关文章

网友评论

      本文标题:Okhttp3信任所有证书设置

      本文链接:https://www.haomeiwen.com/subject/vzeerttx.html