没有合适的资源?快使用搜索试试~ 我知道了~
首页Android okhttp3.0忽略https证书的方法
Android okhttp3.0忽略https证书的方法
2.3k 浏览量
更新于2023-05-27
评论
收藏 131KB PDF 举报
主要介绍了 Android okhttp3.0忽略https证书的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
资源详情
资源评论
资源推荐

Android okhttp3.0忽略忽略https证书的方法证书的方法
主要介绍了 Android okhttp3.0忽略https证书的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参
考。一起跟随小编过来看看吧
最近公司项目需要,网络协议支持https,之前接触不多,所以这次想总结一下https在android开发中的相关内容
一、一、https证书证书
对于https和证书的概念,大家可以自行搜索百度。
证书分两种:证书分两种:
1、花钱向认证机构购买的证书,(我们公司买的证书一个就需要4000元,TMD,还不如多租一台服务器)。服务器如果使用
了此类证书的话,那对于移动端来说,直接可以忽略此证书,直接用https访问。与之不同的是ios内置了很多信任的证书,所
以他们不需要做任何操作
2、另一种是自己制作的证书,使用此类证书的话是不受信任的,也不需要花钱,所以需要我们在代码中将此类证书设置为信
任证书
二、如何忽略证书二、如何忽略证书
1、服务器的哥们如果加上了证书的话,那么你们的网络请求的url将从http:xx改成https:xx,如果你直接也将http改成https的话
而什么也不做的话,客户端将直接报错,如图:
意思就是没有找到本地证书,那就开始构建一个SSL来信任所有的证书,忽略证书其实就是如此。
2、新建一个类
public class SSLSocketClient {
//获取这个SSLSocketFactory
public static SSLSocketFactory getSSLSocketFactory() {
try {
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, getTrustManager(), new SecureRandom());
return sslContext.getSocketFactory();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//获取TrustManager
private static TrustManager[] getTrustManager() {
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
};
return trustAllCerts;
}
}
通过这个类我们可以获得SSLSocketFactory,这个东西就是用来管理证书和信任证书的
但是有一点需要注意:

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0