自2017年1月1日起,根据苹果公司要求,所有iOS应用必须使用ATS(App Transport Security),即iOS应用内的连接必须使用安全的HTTPS连接。

说明 您的阿里云的CDN、SLB服务中的HTTPS配置完全符合ATS的要求。

苹果ATS针对HTTPS协议有如下四个方面的要求。

阿里云2000元代金券免费领,最新优惠1折抢购,2核4G云服务器仅799元/3年,新老用户同享,立即抢购>>>

证书颁发机构的要求

  • 建议您使用DigiCert、GeoTrust品牌的OV型及以上数字证书。
  • 对于个人用户,建议您使用DV型数字证书,不推荐使用免费证书。
  • CFCA品牌的数字证书只在最新的苹果设备上才支持,因此不推荐您选择CFCA品牌。

证书的哈希算法和密钥长度的要求

  • 哈希算法:上述推荐的证书品牌中使用的哈希算法都是SHA256或者更高强度的算法,符合ATS的要求。
  • 密钥长度:
    • 如果您选择使用系统生成CSR的方式,系统生成的密钥采用的是2,048位的RSA加密算法,完全符合ATS的要求。
    • 如果您选择手动填写CSR文件,请确保使用2,048位或以上的RSA加密算法。

传输协议的要求

您的Web服务器上的传输协议必须满足TLS1.2,需要您在Web服务器上开启TLSv1.2,要求如下:

  • 基于OpenSSL环境的Web服务器,需要您使用OpenSSL 1.0及以上版本,推荐您使用OpenSSL 1.0.1及以上版本。
  • 基于Java环境的Web服务器,需要您使用JDK 1.7及以上版本。
  • 其他Web服务器,除IIS7.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 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协议有关。

 server { ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; }

Tomcat配置文件片段

Tomcat配置文件中的SSLProtocol及SSLCipherSuite属性与ATS协议有关。

 <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" 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检测工具

您可以在苹果电脑中使用系统自带的工具进行ATS检测,执行以下命令即可:nscurl --ats-diagnostics --verbose 网址