参考指引:
证书安装指引 - SSL证书 - 腾讯云
阮一峰的网络日志-HTTPS 升级指南
在这之前,默认已经有了域名,以及SSL证书(拥有证书认证最低要求:域名认证)
没有的话,推荐去 腾讯云 或者 阿里云 购买(域名不免费但是有券或者优惠活动,可以免费申请域名型SSL证书)
以Ubuntu服务器,在腾讯云购买的域名(myafei.cn)和申请的证书为例。
将证书(zip文件)下载下来,可通过scp命令上传到服务器上,解压并放置到服务器某个路径下,一般放置在nginx目录下(/etc/nginx/
)
我的放置路径:/etc/nginx/CA/1_myafei.cn_bundle.crt
证书文件,/etc/nginx/CA/2_myafei.cn.key
私钥文件
修改/etc/nginx/sites-available/default
,开启ssl端口监听。
原来的server段是配置http的(监听80端口)
新增一个server段,用于配置https(监听443端口);
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name myafei.cn; #填写绑定证书的域名
ssl on;
ssl_certificate CA/1_myafei.cn_bundle.crt; # 此处填证书文件(pem文件或crt文件)
ssl_certificate_key CA/2_myafei.cn.key; # 此处为私钥文件
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #按照这个套件配置
ssl_prefer_server_ciphers on;
##
# 以下所有配置与另一个server的配置相同
# 如果不加这些配置,https访问站点的http请求会报405错误
##
root /var/www; #站点根目录
index index.php index.html index.htm index.nginx-debian.html;
# 省略若干配置
}
重启nginx,sudo systemctl reload nginx
,即可通过 https://myafei.cn 访问网站。
对于用户不知道网站可以进行https访问的情况下,让服务器自动把http的请求重定向到https。
在http的server(监听80端口那个)里增加rewrite ^(.*) https://$host$1 permanent;
即可,最后记得重启nginx。