线上的应用出现了无法登录的问题,检查代码发现报错

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服务器证书不受信任的解决相关推荐

  1. iOS发布证书不受信任,钥匙串显示发布证书不受信任解决办

    iOS 发布证书不受信任 2021.09.06 14:30:31字数 211阅读 861 最近用新电脑生成发布证书的时候,发现安装后在钥匙串界面一直显示不受信任,以为是没有安装AppleWWDRCA( ...

  2. 谷歌浏览器安全证书不受信任_win7系统谷歌浏览器提示该网站的安全证书不受信任的解决方法...

    很多小伙伴都遇到过win7系统谷歌浏览器提示该网站的安全证书不受信任的困惑吧,一些朋友看过网上零散的win7系统谷歌浏览器提示该网站的安全证书不受信任的处理方法,并没有完完全全明白win7系统谷歌浏览 ...

  3. 谷歌浏览器安全证书不受信任_windows7系统下谷歌浏览器提示该网站的安全证书不受信任如何解决...

    最近有windows7系统用户在使用谷歌浏览器访问某些网站的时候,反映说出现了提示该网站的安全证书不受信任的情况,遇到这样的问题该怎么办呢,接下来给大家讲解一下windows7系统下谷歌浏览器提示该网 ...

  4. intellij服务器证书不受信任,ssl证书不受信任怎么办?ssl证书不受信任解决方案有什么?...

    随之愈来愈多的ssl证书错误的状况出現,大伙儿都是有ssl证书不受信任怎么办这类的难题,而且对这种难题很头痛,下边将带大伙儿解析一下ssl证书不受信任的缘故及解决方案. 一.ssl证书不会受到信任是什 ...

  5. iOS开发证书不受信任

    证书不受信任,如图 原因:可能是缺少AppleWWDRCA这个证书,需要重新下载并安装 打开网址,下载最新的AppleWWDRCA证书:https://developer.apple.com/cert ...

  6. iOS HTTPS证书不受信任解决办法

    之前开发App的时候服务端使用的是自签名的证书,导致iOS开发过程中调用HTTPS接口时,证书不被信任 - (void)URLSession:(NSURLSession *)session didRe ...

  7. 此CA证书不受信任的解决办法

    win+r mmc 文件 添加删除管理单元 双击证书 计算机账户 确定 证书本地计算机 受信任的根证书颁发机构 证书右键 所有任务 导入 (导入浏览器报错的那个证书) 导出报错证书 浏览器 证书双击 ...

  8. 如何解决服务器证书不受信任,pycharm 如何跳出服务器证书不受信任的提示

    出现这个问题 解决方法: 点击file > settings > tools > server certificates > accept non-trusted certif ...

  9. pycharm 服务器证书错误,pycharm 如何跳出服务器证书不受信任的提示

    出现这个问题 解决方法: 点击File > Settings > Tools > Server Certificates > Accept non-trusted certif ...

最新文章

  1. Java中如何实现j并发更新数据库同一条数据
  2. Tomcat下HTTPS双向认证配置以及客户端调用案例
  3. linux每日命令(26):Linux文件属性详解
  4. 18000字的SQL优化大全,收藏直接起飞!
  5. 阿里P8架构师谈:Web前端、应用服务器、数据库SQL等性能优化总结
  6. centos7常用工具安装手册
  7. 【Hadoop Summit Tokyo 2016】云上的大象
  8. linux top cpu瓶颈,Linux命令----分析CPU的瓶颈
  9. mysql show_db 权限_菜鸟课堂:MySQL权限的详细解答
  10. J2EE技术-Hibernate
  11. 灵活使用示波器触发功能,帮助大大提高测量效率
  12. BScroll 使用(Vue)
  13. 英语论文应该怎么查重?
  14. Java基础-数组01
  15. 从0到1,搭建经营分析体系
  16. EIGamal encryption VS Pairing encryption
  17. c语言编写51单片机中断程序,执行过程是怎样的?
  18. list中移除元素:用remove(i)方法遇到的坑以及替代方法
  19. python将图片拼接为视频
  20. 反激式开关电源芯片是什么?如何对反激开关电源mos管选型?

热门文章

  1. 艺卓CG2700X / S显示器评测
  2. C语言——函数指针参数和函数指针
  3. 04.在谷歌浏览器中安装模拟浏览器ChromeDriver的详细步骤
  4. 计算机图像进行滤波的函数,数字图像处理图像滤波.ppt
  5. python教程第二讲_入门python-第二讲数据类型(接上一讲)
  6. react使用jsonp跨域
  7. python进度条箭头
  8. ARKit之路-AR截屏
  9. C++ builder XE10 使用ADO组件时多线程加载出错需要CoInitialize
  10. python_docx制作word文档