HTTPS可以有效的防止运营商的流量劫持,我们的应用中因为使用了http协议,就出现过功能出现异常。苹果要求2017年开始应用内必须使用HTTPS ,这个措施可以有效的解决流量劫持的问题。

苹果要求的ATS(App Transport Security),对HTTPS的加密方式也有要求。

关于ATS

ATS(App Transport Security)是为了提高App与服务器之间安全传输数据一个特性,这个特性从 iOS9 和 OSX10.11 开始出现,它默认需要满足以下几个条件:

  • 服务器TLS版本至少是1.2版本
  • 连接加密只允许几种先进的加密
  • 证书必须使用SHA256或者更好的哈希算法进行签名,要么是2048位或者更长的RSA密钥,要么就是256位或更长的ECC密钥。

如果想详细了解,可以查看 官方文档

Nginx 配置

首先,我们需要先申请ssl证书,腾讯可以提供 免费的SSL证书。如果有域名的管理权限,可以免费申请。

修改Nginx,使其支持HTTPS。

   ssl on;
   ssl_certificate ssl_new.crt;
   ssl_certificate_key ssl_new.key;
   ssl_session_timeout 5m;
   ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
   ssl_prefer_server_ciphers on;

验证

可以在mac系统的终端中使用下面工具验证是否支持ATS的特性。

nscurl --ats-diagnostics --verbose https://www.qiansw.com

如果上面测试全部结果为PASS,则成功,如果出现FAIL,就要找一下原因。