错误
如果一个url因为未满足ATS要求而访问失败,可能会提示下面这样的错误:
Error Domain=NSURLErrorDomain Code=-1200 “An SSL error has occurred and a secure connection to the server cannot be made.”
工具通常,可以使用工具来检测url所属的主机对ATS的支持情况。
可以在命令行下执行:
nscurl ats-diagnostics https://xxx.com
查看详情信息:
nscurl ats-diagnostics verbose https://xxx.com
说明除了工具中提到的几种情况外,还有几种情况需要特殊说明
1、主机使用自签名证书,不满足ATS要求。
2、下面这个链接中,有iOS各个系统版本可信任的证书列表。如果一个网站所使用的签名证书或算法没有在对应的列表中,那么就不满足ATS要求。可通过iOS客户端配置降级来访问。
https://support.apple.com/zh-cn/HT204132 3、如果App中会加载不同主机来源的H5页面,最好开启NSAllowsArbitraryLoadsInWebContent选项,以支持不满足ATS要求的H5页面。
引用关于iOS9中的App Transport Security相关说明及适配(更新于2016.7.1)
https://my.oschina.net/vimfung/blog/494687IOS-关于App Transport Security相关说明及适配
http://blog.csdn.net/maxdong24/article/details/53610127TLS完美前向保密(perfect forward secrecy)翻译
http://blog.csdn.net/gufachongyang02/article/details/53392842关于 iOS 10 中 ATS / HTTPS /2017 问题
http://www.cnblogs.com/fuunnyy/p/6140510.html