android_https踩坑(1)自签名证书OkHttp无法访问

Android https踩坑(1)Android无法访问自签名证书的服务器

    关于https中自签名证书的介绍以及OkHttp中解决自签名证书问题,可以参考鸿洋的这篇博客http://blog.csdn.net/lmj623565791/article/details/48129405   本文主要介绍okhttp,glide,webview中无法访问使用自签名证书服务器的问题。
OkHttp

    关于OkHttp可以参考鸿神的博客http://blog.csdn.net/lmj623565791/article/details/48129405,里面有更详尽的介绍,这里我只介绍下我使用的方式,核心是为任意https证书添加信任。

    1.创建OkHttpClient时添加如下两项


mOkHttpClient = new OkHttpClient.Builder()
      .sslSocketFactory(HttpUtils.createSSLSocketFactory())
      .hostnameVerifier(new HttpUtils.TrustAllHostnameVerifier())
      .build(); 


    2.HttpUtils中几个方法如下:


@SuppressLint("TrulyRandom")
public 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;
}
public static class TrustAllManager implements X509TrustManager {

    @Override
    public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
            throws java.security.cert.CertificateException {
    }

    @Override
    public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException {

    }

    @Override
    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
        return new java.security.cert.X509Certificate[0];
    }
}

public static class TrustAllHostnameVerifier implements HostnameVerifier {
    @Override
    public boolean verify(String hostname, SSLSession session) {
        return true;
    }
}

Glide
待续

webview
待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值