天天看點

ATS的一些問題處理

錯誤

如果一個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