iOS服务器证书不受信任的解决
线上的应用出现了无法登录的问题,检查代码发现报错
Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “公司的域名” which could put your confidential information at risk."
这个是AFNetworking进行https的请求时不信任过期证书导致的。
整个项目出现了如下三个问题。
1.所有基于AFNetworking的网络请求报错。
2.大部分H5页面,使用WKWebView无法加载网页。
3.SDWebImage获取https网络图片失效。
以下是针对这些问题的解决办法:
一、安全模式设置
AFSecurityPolicy是AFNetworking中的安全策略模块,提供了证书锁定模式。我们需要使用AFHTTPSessionManager
设置安全验证代码如下:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.securityPolicy.allowInvalidCertificates = YES;// 设置信任过期证书
manager.securityPolicy.validatesDomainName = NO;// 不验证域名
二、WKWebView加载不受信任的https
首先确定info.pist添加了 App Transport Security Settings,并设置 Allow Arbitrary Loads 为YES。
然后在WKWebView的代理方法WKNavigationDelegate里,实现代理函数:
- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler
{if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {if (challenge.previousFailureCount == 0) {NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];completionHandler(NSURLSessionAuthChallengeUseCredential, credential);}else{completionHandler(NSURLSessionAuthChallengeUseCredential, nil);}}else{completionHandler(NSURLSessionAuthChallengeUseCredential, nil);}
}
三、SDWebImage访问HTTPS站点获取图片资源,直接跳过验证证书
SDWebImage实际上是支持HTTPS的,但很多HTTPS站点都是用了自签名的SSL证书,就像浏览器会报不安全警告一样,SDWebImage也并不信任自签名的SLL证书。
此情况增添SDWebImage下的options
为 SDWebImageAllowInvalidSSLCertificates
即可跳过无效的SSL证书。
[mainPic sd_setImageWithURL:[NSURL URLWithString:model.image_url] placeholderImage:PLACEHOLDER_ICON options:SDWebImageAllowInvalidSSLCertificates];
iOS服务器证书不受信任的解决相关推荐
- iOS发布证书不受信任,钥匙串显示发布证书不受信任解决办
iOS 发布证书不受信任 2021.09.06 14:30:31字数 211阅读 861 最近用新电脑生成发布证书的时候,发现安装后在钥匙串界面一直显示不受信任,以为是没有安装AppleWWDRCA( ...
- 谷歌浏览器安全证书不受信任_win7系统谷歌浏览器提示该网站的安全证书不受信任的解决方法...
很多小伙伴都遇到过win7系统谷歌浏览器提示该网站的安全证书不受信任的困惑吧,一些朋友看过网上零散的win7系统谷歌浏览器提示该网站的安全证书不受信任的处理方法,并没有完完全全明白win7系统谷歌浏览 ...
- 谷歌浏览器安全证书不受信任_windows7系统下谷歌浏览器提示该网站的安全证书不受信任如何解决...
最近有windows7系统用户在使用谷歌浏览器访问某些网站的时候,反映说出现了提示该网站的安全证书不受信任的情况,遇到这样的问题该怎么办呢,接下来给大家讲解一下windows7系统下谷歌浏览器提示该网 ...
- intellij服务器证书不受信任,ssl证书不受信任怎么办?ssl证书不受信任解决方案有什么?...
随之愈来愈多的ssl证书错误的状况出現,大伙儿都是有ssl证书不受信任怎么办这类的难题,而且对这种难题很头痛,下边将带大伙儿解析一下ssl证书不受信任的缘故及解决方案. 一.ssl证书不会受到信任是什 ...
- iOS开发证书不受信任
证书不受信任,如图 原因:可能是缺少AppleWWDRCA这个证书,需要重新下载并安装 打开网址,下载最新的AppleWWDRCA证书:https://developer.apple.com/cert ...
- iOS HTTPS证书不受信任解决办法
之前开发App的时候服务端使用的是自签名的证书,导致iOS开发过程中调用HTTPS接口时,证书不被信任 - (void)URLSession:(NSURLSession *)session didRe ...
- 此CA证书不受信任的解决办法
win+r mmc 文件 添加删除管理单元 双击证书 计算机账户 确定 证书本地计算机 受信任的根证书颁发机构 证书右键 所有任务 导入 (导入浏览器报错的那个证书) 导出报错证书 浏览器 证书双击 ...
- 如何解决服务器证书不受信任,pycharm 如何跳出服务器证书不受信任的提示
出现这个问题 解决方法: 点击file > settings > tools > server certificates > accept non-trusted certif ...
- pycharm 服务器证书错误,pycharm 如何跳出服务器证书不受信任的提示
出现这个问题 解决方法: 点击File > Settings > Tools > Server Certificates > Accept non-trusted certif ...
最新文章
- Java中如何实现j并发更新数据库同一条数据
- Tomcat下HTTPS双向认证配置以及客户端调用案例
- linux每日命令(26):Linux文件属性详解
- 18000字的SQL优化大全,收藏直接起飞!
- 阿里P8架构师谈:Web前端、应用服务器、数据库SQL等性能优化总结
- centos7常用工具安装手册
- 【Hadoop Summit Tokyo 2016】云上的大象
- linux top cpu瓶颈,Linux命令----分析CPU的瓶颈
- mysql show_db 权限_菜鸟课堂:MySQL权限的详细解答
- J2EE技术-Hibernate
- 灵活使用示波器触发功能,帮助大大提高测量效率
- BScroll 使用(Vue)
- 英语论文应该怎么查重?
- Java基础-数组01
- 从0到1,搭建经营分析体系
- EIGamal encryption VS Pairing encryption
- c语言编写51单片机中断程序,执行过程是怎样的?
- list中移除元素:用remove(i)方法遇到的坑以及替代方法
- python将图片拼接为视频
- 反激式开关电源芯片是什么?如何对反激开关电源mos管选型?