iOS9把所有的HTTP请求都改为HTTPS了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2 协议,目的是 强制增强数据访问安全
什么是SSL?
SSL(Secure Sockets Layer 安全套接层
常用的是下面这些:
-
SSL 2.0
-
SSL 3.0
-
TLS 1.0 (SSL 3.1)
-
TLS 1.1 (SSL 3.1)
-
TLS 1.2 (SSL 3.1)
适配问题:
如果不适配,会出现以下错误:
CFNetwork SSLHandshake failed (-9824)
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
适配方法:
方案一:立即让公司的服务端升级使用TLS 1.2
方案二:虽Apple不建议,但可通过在 Info.plist 中声明,倒退回不安全的网络请求依然能让App访问指定http,甚至任意的http
方案一由服务器端控制,方案二比较容易:
currently there is no way to define this in info.plist. Solution is to add it manually:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>