前置条件

购买证书或者申请各大云服务商的一年期免费证书(到期记得续签),下载证书到本地,内含.crt(域名证书)和.key(私钥)两个文件。

配置nginx(正常配置)

server {
    listen 80;#监听80端口
    listen 443 ssl;#监听443端口
    server_name domain.com;

    #引用证书(必须,放在conf/ssl目录下可以用相对路径,其他位置用绝对路径)
    ssl_certificate     ssl/domain.com.crt;
    ssl_certificate_key ssl/domain.com.key;

    #协议优化(可选,优化https协议,增加安全性)
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    #其他的配置信息···

    #http强制跳转https
    if ($scheme = http ) {
        return 301 https://$host$request_uri;
    }

}

配置nginx(单端口配置)

网站仅有一个端口可以访问的时候,要做到访问http://host:8080跳转到https://host:8080的效果,必须使用以下配置:

server {
    listen 8080 ssl;# 监听8080端口
    server_name domain.com;

    #引用证书
    ssl_certificate	ssl/domain.com.crt;
    ssl_certificate_key	ssl/domain.com.key;

    #其他的配置信息···

    #使用8080端口设为ssl端口,当使用http访问时,会报497错误,利用该错误跳转页面至https
    error_page 497 https://$host:$server_port$request_uri;
}

重新载入nginx配置

nginx -s reload

效果

捕获.JPG


标题:ngnix配置ssl证书
作者:xingzhegu
地址:https://www.fxg.life/articles/2020/10/16/1602826561400.html