Nginx实战五(配置HTTPS)

323 阅读1分钟

下载证书

可以在阿里云或者腾讯云申请免费的证书(腾讯云阿里云),安装过程直接看所在云的操作指南即可,然后下载证书的压缩文件,里面有一个nginx文件夹,把 xxx.crt 和 xxx.key 文件拷贝到服务器目录,再配置下:

server { 
    # SSL 访问端口号为 443 
    listen 443 ssl http2 default_server;
    
    # 填写绑定证书的域名 将dacongming.com换成自己的域名
    server_name dacongming.com; 
    
    # 证书文件地址 
    ssl_certificate /etc/nginx/https/certificate.crt; 
    
    # 私钥文件地址 
    ssl_certificate_key /etc/nginx/https/certificate.key; 
    
     # 所有进程都可共享缓存,最多可存储10M
    ssl_session_cache shared:SSL:10m;
    
    # session过期时间
    ssl_session_timeout 10m; 
    
    # 浏览器已支持TLSv1.3,建议加上
    # TLSv1和TLSv1.1即将废弃,如果不需要支持IE和XP建议去掉
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; 
    
    # on由服务器决定加密算法,off 由浏览器决定
    ssl_prefer_server_ciphers on; 
    
    # 使用此套接字加密,推荐配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
    
    location / { 
        root /usr/local/etc/nginx/html/dazhihui; 
        index index.html index.htm; 
    } 
}

重定向

当用 http:// 访问,仍旧显示连接不安全,我们需要修改配置,当访问 http 时会重定向到 https 如下

server {
    listen      80;
    server_name dacongming.com;

    # 单域名重定向
    if ($host = 'dacongming.com'){
        return 301 https://www.dacongming.com$request_uri;
    }
    # 全局非 https 协议时重定向
    if ($scheme != 'https') {
        return 301 https://$host$request_uri;
    }

    # 或者全部重定向
    return 301 https://$host$request_uri;

    # 以上配置选择自己需要的即可,不用全部加
}