2017 ios適配ATS

iOS10 從2017年1月1日起蘋(píng)果不允許我們通過(guò)這個(gè)方法跳過(guò)ATS,也就是說(shuō)強(qiáng)制我們用HTTPS,如果不這樣的話提交App可能會(huì)被拒絕。但是我們可以通過(guò)NSExceptionDomains來(lái)針對(duì)特定的域名開(kāi)放HTTP可以容易通過(guò)審核。)

以前我們是這樣做的
<key>NSAppTransportSecurity</key>
<dict> <key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

2017年1月1日以后這個(gè)方法被禁止掉了

一、使用默認(rèn)的ATS設(shè)置要滿足:
1、https 要基于TLS 1.2或以上版本。
2、證書(shū)的加密的算法要至少要SHA256的算法,用至少是2048位的RSA的key 或至少是256位的Elliptic-Curve(ECC)的key所產(chǎn)生的證書(shū)
3、加密算法也是有限制,就是ATS中的ForwardSecrecy(超前的密碼保護(hù)算法)配置項(xiàng),需要在以下列表中,詳見(jiàn):蘋(píng)果文檔。
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

如果不符合上述3各要求,請(qǐng)求接口會(huì)報(bào)錯(cuò):
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)

解決辦法
1.開(kāi)啟https 這個(gè)很簡(jiǎn)單, 搞服務(wù)器的都可以搞定
2.我們需要一個(gè)SSL證書(shū),自建證書(shū)達(dá)不到蘋(píng)果要求,老板又不肯花錢(qián),只能找找免費(fèi)證書(shū)了.
阿里云免費(fèi)證書(shū) ,有效期1年,1年后要不要付費(fèi),誰(shuí)知道1年后會(huì)怎樣,目前還是通過(guò)審核要緊.
https://common-buy.aliyun.com/?commodityCode=cas#/buy
3.按照阿里云設(shè)置域名
4.部署到服務(wù)器上,有點(diǎn)要注意,要求服務(wù)器同事設(shè)置客戶端免證書(shū)校驗(yàn),這樣我們方便,客戶端不用設(shè)置證書(shū)了.
5.發(fā)現(xiàn)阿里云免費(fèi)證書(shū)TLS 1.0 蘋(píng)果要求TLS 1.2或以上版本,做以下設(shè)置
<key>NSAppTransportSecurity</key>
<dict> <key>NSExceptionDomains</key> <dict>
<key>xxxx.com</key>
<dict>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
大功告成!!

推薦一個(gè)linux命令行網(wǎng)站:https://rootopen.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容