服务器配置ssl证书支持苹果ATS方法
发布日期:2016-12-14苹果安全工程&架构部门主管Ivan Kristic表示ATS将在今年底成为App Sotre app的必要条件,这将大幅提高App在网络上的通讯安全,带给用户真正的安全保障。
其实在iOS 9中ATS是默认开启的,但开发者仍然能关闭ATS,但从2017年1月1日起,App开发者们也明确了必须强制开启ATS的期限。
苹果提出的ATS有哪些强制标准呢:
部署服务器SSL证书,启用HTTPS加密连接。但需满足以下ATS默认的安全要求:
1、 ATS要求服务器必须支持传输层安全(TLS)协议1.2以上版本;
2、通讯中的加密套件配置要求支持列出的正向保密;(以下Apple官方文档列表)
3、 数字证书必须使用SHA256或者更高级的签名哈希算法签名,并且保证密钥是2048位及以上的RSA密钥或者256位及以上的ECC算法。
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
DSA算法要求使用以下加密套件:
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
如何支持ATS标准:
1、购买苹果信任CA所颁发的证书;
2、部署https网站的web服务器也有一定要求,如下:
Apache,Nginx要求关联的openssl版本在1.0.1+,这样网站才支持TLS1.2,同时您需要对证书相关参数做一定调整:
Apache:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
Nginx:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
Tomcat要求环境 tomcat7+和JDK1.7+,配置参考如下:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="keystore/domain.jks" keystorePass="证书密码" clientAuth="false" sslProtocol="TLS" ciphers="TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" />
IIS要求环境 windows server 2008 R2/IIS 7+,调整方式如下:
下载调整加密套件的工具,下载地址:
下载完成后,运行程序,点击Best Practice按钮,然后点击Apply按钮,这时系统提醒您重启,点击重启,配置才能生效。