App Transport Security,简称 ATS,是苹果在 iOS 9 当中首次推出的一项安全功能。在启用 ATS 之后,它会强制应用通过 HTTPS(而不是 HTTP)连接网络服务,这能够通过加密来保障用户数据安全。苹果公司强制iOS App在2017年1月1日前使用HTTPS加密,这就意味着,如果您的APP如果仍采用HTTP传输,那么,在Apple Store中您的APP将不再能被用户下载使用。2017 年 1 月 1 日——即 App Store 当中的所有应用必须启用 App Transport Security (ATS)安全功能。
在 ATS 完全开启的情况下,系统要求 app 的 HTTPS 连接必须满足以下要求:
X.509 数字证书必须满足下列标准中的一项:
TLS 版本必须为1.2,任何不使用或使用较低版本 TLS / SSL 的连接,都将失败。
连接必须使用 AES-128 或 AES-256 对称加密算法。 TLS 算法套装必须以 ECDSA 密钥交换的形式支持正向保密,加密算法必须为下面之一:
服务端的叶证书签名密钥必须为下面之一:
此外,服务器证书的哈希算法必须为 SHA-2,其摘要长度至少位256位(即 SHA-256 及以上)
1、APP与后台的通讯改为HTTPS。
2、所申请的证书必须是iOS系统内嵌的证书颁发机构签发的。 可参考https://support.apple.com/zh-cn/HT207177
3、AppCan平台应用:APP在打包的时候需要选择开启ATS功能。(即云端打包->ATS配置/自定义ATS配置)
4、AppCan平台应用:须第三方sdk支持ATS(其他插件都支持),官方API针对相关插件已完成
版本升级支持ATS,开发者需要更新项目所用插件版本(可后续关注文档中心插件更新日志)选择打包。
5、小贴士:利用nscurl这个命令行工具,检测一个URL地址是否支持ATS。用法如下:/usr/bin/nscurl --ats-diagnostics [--verbose] URL
对于应用服务器的API请求,必须使用HTTPS。如果使用的是第三方的API,而他们没有提供HTTPS支持的话,需要在NSExceptionDomains中添加。
若App中存在使用WebView浏览网站的请求,而网站并未提供HTTPS,可以配置NSAllowsArbitraryLoads:YES & NSAllowsArbitraryLoadsInWebContent:YES。
ATS配置文件可在线进行个性化设置(即云端打包配置,参考在线编辑配置模板),请参考苹果官网文档里介绍。