首页 >> 大全

关于使用Okhttp导致的证书信任问题

2023-12-17 大全 32 作者:考证青年

我们通常创建的方法使用的是这种,但有可能导致证书不受信任,访问不了的问题,比如调试运行时会报如下错误

OKHTTP javax.net.ssl.SSLHandshakeException

这时候我们不要着急新建一个工具包,在包里新建如下类,类名随便取就行

package com.zy.community.utils;import okhttp3.OkHttpClient;import javax.net.ssl.*;/*** 处理证书不受信任的问题*/
public class OkHttpSSL {//okHttp3添加信任所有证书public static OkHttpClient getUnsafeOkHttpClient() {try {final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {@Overridepublic void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {}@Overridepublic void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {}@Overridepublic java.security.cert.X509Certificate[] getAcceptedIssuers() {return new java.security.cert.X509Certificate[]{};}}};final SSLContext sslContext = SSLContext.getInstance("SSL");sslContext.init(null, trustAllCerts, new java.security.SecureRandom());final javax.net.ssl.SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();OkHttpClient.Builder builder = new OkHttpClient.Builder();builder.sslSocketFactory(sslSocketFactory);builder.hostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String hostname, SSLSession session) {return true;}});return builder.build();} catch (Exception e) {throw new RuntimeException(e);}}
}

紧接着我们把之前创建的方法替换

OkHttpClient client = OkHttpSSL.getUnsafeOkHttpClient();

再次运行就不会报错了。

感谢此大佬@哥哥是欧巴

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了