android_https踩坑(1)自签名证书OkHttp无法访问
2017-12-12 15:54
1126 查看
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
待续
相关文章推荐
- android_https踩坑(3)android webview无法访问自签名证书的服务器
- Cordova下自签名证书无法访问https问题(IOS和Android)
- android通过okhttp访问自签名https网站(单向)
- nginx配置https及Android客户端访问自签名证书
- Android 4.x 在 https 协议下无法利用 okhttp 进行网络访问的临时解决办法
- OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)
- Android下OkHttp请求自定义HTTPS证书接口设置
- Android实现https单双向认证及自签名证书生成方法
- 客户端用https申请证书页面无法访问
- Android 6.0 HTTPS SSL 无法访问,提示Handshake failed(握手失败),解决方案
- android通过生成bks证书来访问https的实现
- Android3种访问https的方法(管理证书认证)
- certbot在Centos7上配置合法签名证书,实现nginx的https访问
- 无法安装ADT(无法访问https://dl-ssl.google.com/android/eclipse/) 的解决方法
- 非对称加密、https加密和android apk证书签名
- 无法访问https://developer.android.com相应的网站
- android 访问https 证书问题 报错javax.net.ssl.SSLHandshakeException
- java Android OKHttp HTTPS 请求证书验证 PEM证书(1)
- OkHttp使用Https访问服务器时信任所有证书