6月14日在WWDC 2016开发者大会上,苹果宣布了一个最后期限:2017年1月1日起,所有新提交到App Store的app和app更新都必须启用 App Transport Security(ATS)安全功能,并要求后台服务器必须支持ATS安全标准。
除浏览器类app以及音视频资源文件可仍然使用 http 方式访问以外,所有其他类型app都将只能通过 https 方式连接网络。
也就是说, 上App store的应用,info.plist里将不允许使用NSAllowsArbitraryLoads=true来绕过ATS的限制。
可以让公司服务端的同事参考Apple提供官方指南App Transport Security Technote进行服务的升级配置以满足ATS的要求,一个符合 ATS 要求的HTTPS,应该满足如下条件:
1.Transport Layer Security协议版本要求TLS1.2以上
2.服务的Ciphers配置要求支持Forward Secrecy= true等
3.证书签名算法符合ATS要求等
对CA颁发的证书要求:"Certificates must be signed using a SHA256 or better signature hash algorithm, with either a 2048 bit or greater RSA key or a 256 bit or greater Elliptic-Curve (ECC) key. Invalid certificates result in a hard failure and no connection"
官方文档对ATS的介绍 App Transport Security Technote
网址:https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html#//apple_ref/doc/uid/TP40016240
Q:如何检测我们公司 HTTPS 是否符合 ATS 的要求?
A:在OS X EI Capitan及更新的系统的终端中通过nscurl命令来诊断检查你的HTTPS服务配置是否满足Apple的ATS要求:
nscurl --verbose --ats-diagnostics https://服务器域名
看到最后结果:Result : PASS, 查看上边ATS Dictionary里的配置,就是这个域名服务器当前配置情况,检查一下是否符合苹果的ATS安全要求。
网友评论