关于Apple iOS 10 ATS(App Transport Security) 的问题

发布时间:2017/2/19 20:34:46 打印 字号:

WWDC 16 中,从 2017 年 1 月 1 日起,所有的新提交 app 默认是不允许使用 NSAllowsArbitraryLoads 来绕过 ATS 限制的,也就是说,APP所有请求都必须是 HTTPS 加密的,否则可能会在应用审核时会被退回。

除了安装SSL证书,服务器配置环境还需要满足ATS的标准:

  1. 服务器环境必须支持 TLS v1.2           ( WINDOWS服务器升级至WIN2012 R2  , Linux 尽量使用新版本系统,OpenSSL1.0.2以上版本 、nginx apache如果不是用最新版的openssl编译,需要重新编译安装)

  2. SHA-2    (目前颁发的证书都是SHA2)

  3. AES-128 、AES-SHA256  (优化服务器配置可以实现,如果不懂可以咨询客服  https://www.gworg.com/plug/search.asp?key=%E5%AE%89%E5%85%A8%E4%BC%98%E5%8C%96

 

  • 可以添加 NSAllowsArbitraryLoads 为 YES 来全面禁用 ATS,提交APP时需要说明原因(通过率低除非有正当理由)。

  • 如果是针对部分域名使用HTTP,可以使用 NSExceptionDomains 来针对特定的域名 (审核时需要特殊说明原因)。

  • 对于网页浏览和视频播放的行为,iOS 10 中新加入了 NSAllowsArbitraryLoadsInWebContent 和 NSAllowsArbitraryLoadsForMedia 键。通过将它们设置为 YES,可以让你的 app 中的 UIWebView、WKWebView 或者使用 AVFoundation 播放的在线视频不受 ATS 的限制。虽然依然需要在审核时进行说明,但这也应该是绝大多数使用了相关特性的 app 的首选。坏消息是这个键在 iOS 9 中并不会起作用。