錯誤
如果一個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/494687
IOS-關于App Transport Security相關說明及适配
http://blog.csdn.net/maxdong24/article/details/53610127
TLS完美前向保密(perfect forward secrecy)翻譯
http://blog.csdn.net/gufachongyang02/article/details/53392842
關于 iOS 10 中 ATS / HTTPS /2017 問題
http://www.cnblogs.com/fuunnyy/p/6140510.html