自2017年01月01日起,根据苹果公司要求,所有iOS应用必须使用ATS(App Transport Security),即iOS应用内的连接必须使用安全的HTTPS连接。
说明 阿里云CDN、传统型负载均衡CLB(原SLB)服务中的HTTPS配置完全符合ATS的要求。
证书配置要求
苹果ATS针对证书相关配置有如下四个方面的要求。
项目 | 具体要求 |
证书颁发机构 | |
证书的哈希算法和密钥长度 | |
传输协议 | 您Web服务器上的传输协议必须满足TLSv1.2,需要您在Web服务器上开启TLSv1.2,要求如下: 基于OpenSSL环境的Web服务器,需要您使用OpenSSL 1.0及以上版本,推荐您使用OpenSSL 1.0.1及以上版本。 基于Java环境的Web服务器,需要您使用JDK 1.7及以上版本。 其他Web服务器,除IIS 7.5以及Weblogic 10.3.6比较特殊外,只要Web服务器版本满足要求,默认均开启TLSv1.2。
Web服务器的详细配置要求如下: Apache、Nginx Web服务器需要您使用OpenSSL 1.0及以上版本来支持TLSv1.2。 Tomcat 7及以上版本Web服务器需要您使用JDK 7.0及以上版本来支持TLSv1.2。 IIS 7.5 Web服务器默认不开启TLSv1.2,需要您修改注册表来开启TLSv1.2。 下载并导入ats.reg注册表脚本后,需要您重启或注销服务器,即可使TLSv1.2生效。 IBM Domino Server 9.0.1 FP3 Web服务器支持TLSv1.2。根据ATS要求,建议您使用IBM Domino Server 9.0.1 FP5版本。更多信息,请参见IBM HTTP SSL Server Questions and Answers。 IBM HTTP Server 8.0及以上版本支持TLSv1.2。根据ATS要求,建议您使用IBM HTTP Server 8.5及以上版本。 Weblogic 10.3.6及以上版本Web服务器需要您使用Java 7及以上版本来支持TLSv1.2。
说明 Weblogic 10.3.6中存在多个SHA256兼容性问题,建议您使用Weblogic 12及以上版本,或者您需要为Weblogic 10.3.6配置前端Apache和Nginx的HTTPS代理或SSL前端负载。 Webspere V7.0.0.23及以上版本、Webspere V8.0.0.3及以上版本、Webspere V8.5.0.0及以上版本支持TLSv1.2。关于如何配置Webspere服务器支持TLSv1.2,请参见Configure websphere application server SSL protocol to TLSv1.2。
|
签名算法 | 签名算法必须满足如下算法要求: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
|
配置示例
以下通过举例方式说明不同Web服务器的ATS协议及加密套件的配置方法。
重要 本示例仅列举了与ATS协议有关的属性,请不要完全复制以下配置用于您的实际环境。
Nginx配置文件片段
Nginx配置文件中ssl_ciphers及ssl_protocols属性与ATS协议有关。
重要 参考以下示例配置ssl_protocols参数时,您需要自行评估是否使用TLSv1.1。
server {
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
}
Tomcat配置文件片段
Tomcat配置文件中的SSLProtocol及SSLCipherSuite属性与ATS协议有关。
重要 参考以下示例配置SSLProtocol参数时,您需要自行评估是否使用TLSv1.1。
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
scheme="https" secure="true"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
SSLProtocol="TLSv1.1+TLSv1.2+ TLSv1.3"
SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4" />
IIS系列Web服务器的配置方法,请参见Enabling TLS 1.2 on IIS 7.5 for 256-bit cipher strength。您也可以使用可视化配置插件进行配置。具体操作,请参见IIS Crypto。
ATS检测工具
您可以在苹果电脑中使用系统自带的工具执行nscurl --ats-diagnostics --verbose <网址>
命令进行ATS检测。