关于iOS 9发行版中的ATS SSL

时间:2015-09-17 03:48:46

标签: ios ios9

我的应用使用http,但尚未针对iOS9进行更新。今天我在iPad上升级到iOS9,我的所有应用程序仍在使用http。似乎Apple在iOS9发布版中没有强制https。有人知道Apple会在什么时候这样做,否则Apple不会这样做?出于某种原因,我不想更新我的应用程序。

3 个答案:

答案 0 :(得分:0)

在基于Xcode 7构建的应用程序上启用ATS,但在使用早期版本的Xcode构建的应用程序上启用ATS。这是为了防止成千上万的应用程序破坏'在iOS 9上。

如果您使用Xcode 7重建应用程序,将为您的应用启用ATS,您将需要更改后端以使用HTTPS或将异常添加到info.plist。

从本质上讲,ATS是强迫性的。对于新的/更新的应用程序(或者您需要明确部分或完全禁用它),但不适用于旧应用程序。

答案 1 :(得分:0)

iOS 9强制使用HTTPS的连接为TLS 1.2以避免最近的漏洞。在iOS 8中,甚至支持未加密的HTTP连接,因此旧版本的TLS也没有出现任何问题。作为解决方法,您可以将此代码段添加到Info.plist:

<key>NSAppTransportSecurity</key>  
  <dict>  
  <key>NSAllowsArbitraryLoads</key>  
  <true/>  
  </dict>  

答案 2 :(得分:0)

目前的应用程序在iOS 9上运行良好.ATS SSL要求为iOS 9构建了wot应用程序。

来自App Transport Security Technote

  

默认行为:
  使用NSURLConnection,CFURL或NSURLSession API的所有连接都在为iOS 9.0或更高版本以及OS X 10.11或更高版本构建的应用程序中使用App Transport Security默认行为。不符合要求的连接将失败。

关键部分是:专为iOS 9.0或更高版本构建的应用

这些是App Transport Security要求:

  • 服务器必须至少支持1.2版传输层安全性(TLS)协议。
  • 连接密码仅限于提供前向保密的密码(请参阅下面的密码列表。)
  • 证书必须使用SHA256或更好的签名哈希算法进行签名,使用2048位或更高的RSA密钥或256位或更高的椭圆曲线(ECC)密钥。
  • 无效的证书会导致硬故障并且无法连接。