UIWebView 如何加载自签名HTTPS网站

2018-07-02  本文已影响0人  郭桥生

这几天公司app开发后期阶段,爆出来好多关于网络的问题,比如服务器不是HTTPS、iOS10上面轮播图播不出来、自签名HTTPS网页加载失败的情况(新浪支付,没错就是新浪支付),为了解决这个问题搜集了好多资料所以想一一列出来,做个笔记


1 、HTTPS图片加载不出来

项目里面使用的是SDWebImage,其实SDWebImage里面有方法进行适配了

调用下面方法,options参数可以设置为SDWebImageAllowInvalidSSLCertificates

options参数可以配置

2、自签名UIWebView加载不出来

iOS的ATS规则网上有很多详细的资料,你可以随心所欲的设置:完全禁用ATS、部分禁用ATS、部分使用ATS、完全使用ATS...

 但是我设置了禁用ATS之后发现UIWebView仍然会显示加载失败并且报错

     NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802);

搜了好多资料,大概有几种解决方案 [私有API, NSURLConnection , NSURLSession]

前两种就不说了,网上资料有很多,我也是都一一试过了,能用但是有问题

 私有API会被拒,NSURLConnection又已经被弃用

所以去搜了一下如何用NSURLSession信任网站的证书,搜出来的资料好像并不是很多也不全,所以只好科学上网查了查资料

 用法也好简单

加载之前走一遍证书信任 在这个代理方法里面信任证书

和NSURLConnection使用步骤是一样的,只不过一个代理方法搞定,我是在代理方法回掉之后延迟了一小会儿执行重新加载步骤的,暂时不太确定有没有问题,如果有更合适的位置做操作,请帮忙纠正


更新问题:证书明明支持了TLS1.2但是在运行时却报错的问题  ->  时间设置 时间设置 时间设置

重要的事情说三遍!

最后贴出来资料的链接

iOS ATS 适配、 NSURLSession认证证书

上一篇下一篇

猜你喜欢

热点阅读