Okhttp3信任所有证书设置

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];
    }
}

参考链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • 《爱可可老师今日视野(15.08.07)》( 分享自@简书)O网页链接 《爱可可老师今日视野(15.08.04)》...
    hzyido阅读 1,363评论 0 2
  • 首先来分析一下什么是HTTPS以及了解HTTPS对于iOS开发者的意义 HTTPS 以及SSL/TSL 什么是SS...
    郑知鱼阅读 78,235评论 174 222
  • 记得决定加入群的那晚,闺蜜说她心情不好,想找我聊聊,那晚我们聊了很久很久:从她的彷徨到一直坚持她的不变的梦想。 说...
    琳奕na阅读 158评论 2 2
  • 这是我用的时间管理软件,每天记录自己干任何一件事所花的时间,到晚上在来总结,然后相应的来调整,让自己明天开始什么事...
    Sophia索菲阅读 2,429评论 0 0