现在越来越多的网站使用HTTPS协议了,并且阿里云提供免费的ca证书(前提是主机也在阿里云买的),于是果断把站点从http切换到HTTPS.
过程很简单,去阿里云购买CA证书,购买后需要填写些资料,然后提交审核,阿里云的审核速度还是相当快的,当天或次日就可得结果.
第一步:增加站点的https配置文件
# 把现有的配置文件复制一个
cp /etc/nginx/conf.d/com.abc.conf /etc/nginx/conf.d/com.abc.https.conf
vi /etc/nginx/conf.d/com.abc.https.conf
把监听端口由80改为443,并往server配置段里添加ssl相关的配置:
server {
listen 443;
server_name abc.com abc.com;
# 为一个server{......}开启ssl支持
ssl on;
# 指定 PEM 格式的证书文件
ssl_certificate /home/wwwroot/webs/com.abc/cert/214029045180842.pem;
# 指定 PEM 格式的私钥文件
ssl_certificate_key /home/wwwroot/webs/com.abc/cert/214029045180842.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
........
.......
........ 站点的其它配置
}
第二步: 修改原来http访问时的配置文件
vi /etc/nginx/conf.d/com.abc.conf
把所有的 http 请求都重定向到 https,并删除其它多余的配置,最终内容如下:
server {
listen 80;
server_name abc.com www.abc.com;
rewrite ^(.*)$ https://$host$1 permanent;
}