配置HTTPS

96
East_wu
0.2 2016.12.28 13:15* 字数 775

2017年1月1日开始,苹果要求所有iOS应用必须使用ATS(App Transport Security),即APP内连接必须使用安全的HTTPS。并不简单是一个HTTPS协议,而且要满足iOS9中新增特性。虽然目前已经无限期推迟了这个计划,但该来的总会来的。

安全的HTTPS

安全的HTTPS主要包括以下几点:
1、证书颁发机构的要求
2、传输协议的要求
3、签字算法的要求
4、证书的哈希算法和秘钥长度的要求
更详细的关于这些要求的解释可以在阿里云查看

证书申请

由于我的服务器、域名都在阿里云,所以使用了阿里云提供的证书服务

证书购买

1.选择 购买证书 即可进入证书购买页面。可以按照需求配置您的证书。这里我选择了 免费型DV SSL 证书(毕竟不要钱) 这里选择的品牌满足了 [1、证书颁发机构 的要求]。推荐选择Symantec/GeoTrust品牌的OV及以上证书。CFCA虽然是国产的,但是CFCA品牌只在最新的苹果设备上才支持,不推荐CFCA品牌
2.购买完成够并不意味着您的证书可以使用了,还需要提交审核,完善基本信息

签发SSL证书

1.购买证书完成后,可以在 控制台->安全(云盾)->证书服务 中找到您的订单 选择 “信息补全”

fillinfoentry.jpg

2.根据您的需求补全您的信息,最后提交审核即可。更详细的流程您可以去这里查看。在这个过程中可以选择系统创建CSR方式,它的秘钥是2048为的RSA加密算法,并且阿里云提供的证书品牌中是哈希算法都是SHA256或者更高强度的算法 满足了 [4、证书的哈希算法和秘钥长度的要求]

下载签发的证书

1.等待审核通过后选择下载,进入下载页面。根据服务器类型选择不同的下载证书,这里我选择了Nginx环境下的证书下载。下载到本地后解压会发现里面有两个文件分别是.key和.pem文件,它们就是我们的最终证书。


2147BC03-1013-430F-9CC5-B86CCAD8ECFD.png

2.上传.key和.pem文件到服务器的任意目录下。记一下它们的路径,待会会用到。

屏幕快照 2016-12-28 下午12.36.51.png

3.一个完整可用的证书就制作好了,下面就是配置您的服务器了

Nginx服务器配置

1.需要检查Nginx的SSL模块是否安装。在nginx/sbin 文件夹下运行

nginx -v 
configure arguments中存在 --with-http_ssl_module 说明SSL模块以及安装
屏幕快照 2016-12-28 下午1.07.23.png

1.进入到您要配置的域名的conf文件中。

cd /usr/local/nginx/conf/vhost/
vi api.conf

2.修改您的nginx配置文件

8B809940-9F4E-44A8-A128-A1A0A1018158.png

2.1 将listen 80;修改成监听443端口
2.2 加入2号框中的配置

  ssl on;
  ssl_certificate /usr/local/nginx/conf/ssl/apissl/213985405980765.pem;            #上传的证书pem文件
  ssl_certificate_key /usr/local/nginx/conf/ssl/apissl/213985405980765.key;      # 上传的证书key文件
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                 #设置传输协议 苹果要求必须满足 TLSv1.2  这里满足了  [2.传输协议的要求]
  ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;   # 签字算法 [3.签字算法的要求] 
  ssl_prefer_server_ciphers on;

2.3 为了解决修改为https后http无法访问的问题可以加入 3号框 中的代码 将http重定向到https
3.重启nginx服务器 查看端口状态

lnmp restart nginx     //重启nginx 不同的系统请选择不同的重启方式
netstat -lntup|grep 443 //查看443端口状态

查看效果

1.打开浏览器输入 http://api.eastwu.cn 或者 https://api.eastwu.cn 查看查看是否能够正确访问

1BC8252D-232F-4E92-93EA-C4BAB9E7E67D.png

2.检查是否满足ATS可以使用MAC自带的命令

nscurl --ats-diagnostics --verbose https://api.eastwu.cn
屏幕快照 2016-12-28 下午1.04.24.png

检查全部通过,说明HTTPS配置成功了

PHP开发
Web note ad 1