Nginx下让网站使用HTTPS协议

现在越来越多的网站使用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;  
}

你可能感兴趣的:(Nginx下让网站使用HTTPS协议)