nginx 启用全站 https

https 和 http 并不是两个独立的协议,https 只不过是在 http 的基础上加了个 ssl/tls 安全套接层而已!

获取证书

因为付费 SSL/TLS 证书太贵了,我只能选择免费的 - 腾讯云 ssl 证书;或者国外的 Let’s Encrypt - Free SSL/TLS Certificates
因为腾讯云的 SSL 证书有效期是一年的,而且只需添加一个 DNS 解析,因此我选择腾讯,将证书放在/etc/pki/nginx/

配置nginx

vim www.conf
server {
    listen       443;
    server_name  www.zfl9.com;
    root         /usr/share/nginx/html/www.zfl9.com;
    ssl          on;
    ssl_certificate "/etc/pki/nginx/server.crt";
    ssl_certificate_key "/etc/pki/nginx/server.key";
}
server {
    listen 80;
    server_name www.zfl9.com;
    rewrite ^(.*)$ https://$server_name$1 permanent;    ## 301 永久重定向,强制跳转至 https
}

systemctl restart nginx
ss -lnp|grep 443    # 查看 https 端口是否开启

访问 http://www.zfl9.com 301重定向至 https://www.zfl9.com

nginx全站https