1. 下载SSL证书

在SSL服务提供商处,下载Nginx(适用大部分场景)(pem文件、crt文件、key文件)格式的SSL证书

2. 安装SSL证书到Nginx服务器

前置:为Nginx安装好SSL模块

nginx -V 2>&1 | grep -o -- '--with-http_ssl_module'

执行以下命令,若输出--with-http_ssl_module则说明已安装 SSL 模块,否则需进行安装。


a. 将domain.keydomain_bundle.crt文件放在服务器/etc/nginx/cert中 b. 添加监听443端口的server块

server {
    listen 443 ssl default_server;
    server_name yourdomain.com www.yourdomain.com;
    
    # ======================= 证书配置开始 =======================
    # 指定证书文件(中间证书可以拼接至该pem文件中),请将 /etc/nginx/cert/ssl.crt 替换为您实际使用的证书文件的绝对路径
    ssl_certificate /etc/nginx/cert/ssl.crt;
    # 指定私钥文档,请将 /etc/nginx/cert/ssl.key 替换为您实际使用的私钥文件的绝对路径
    ssl_certificate_key /etc/nginx/cert/ssl.key;
    # 指定允许的 TLS 协议版本,TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差
    ssl_protocols TLSv1.2 TLSv1.3;
    # 自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    # 优先使用服务端指定的加密套件
    ssl_prefer_server_ciphers on;
    
    # 配置 SSL 会话缓存,提高性能
    ssl_session_cache shared:SSL:1m;
    # 设置 SSL 会话超时时间
    ssl_session_timeout 5m;
    # ======================= 证书配置结束 =======================
   
    # 其它配置
    ...
}

c. 可选:设置 http 请求自动跳转到 https。在原有监听 80 端口的 server 块中添加 return 指令即可。

# 原有监听 80 端口的 server 块
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
        
    # 设置HTTP请求自动跳转到HTTPS
    return 301 https://$host$request_uri;
    
    # 原有其它配置
    ...
}

3. 验证SSL证书是否安装成功

a. 请通过 HTTPS 访问您已绑定证书的域名(如 https://yourdomain.comyourdomain.com 需替换为实际域名)。 b. 若浏览器地址栏显示安全锁图标,说明证书已成功部署。如访问异常或未显示安全锁,请先清除浏览器缓存或使用无痕(隐私)模式重试。