下载 Nginx 格式证书

证书签发后,在控制台「证书列表」页点击「更多 → 下载」,选择 Nginx 格式。解压得到两个文件:

  • example.com.pem — 证书文件(含完整证书链)
  • example.com.key — 私钥文件

上传证书到服务器

建议放在 Nginx 配置目录下:

# 创建证书存放目录
sudo mkdir -p /etc/nginx/certs/

# 使用 scp 上传(在本地执行)
scp example.com.pem example.com.key root@your-server:/etc/nginx/certs/

配置 Nginx

编辑 Nginx 配置文件(通常在 /etc/nginx/nginx.conf/etc/nginx/conf.d/ 下):

server {
    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate /etc/nginx/certs/example.com.pem;
    ssl_certificate_key /etc/nginx/certs/example.com.key;

    # 推荐的 SSL 安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    location / {
        root /var/www/html;
        index index.html;
    }
}

# HTTP 自动跳转 HTTPS
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

测试并重载

# 测试配置是否正确
sudo nginx -t

# 配置正确则重载
sudo nginx -s reload

验证 HTTPS 是否生效

浏览器访问 https://example.com,地址栏出现锁形图标即表示证书部署成功。

也可以使用命令行验证:

curl -I https://example.com

返回 HTTP/2 200 且无证书错误即表示正常。

常见问题

浏览器提示证书不受信任?

通常是证书链不完整。请确认使用的是包含完整证书链的 .pem 文件,而非单独的证书文件。平台下载的 Nginx 格式 .pem 已包含完整链(服务器证书 + 中间 CA 证书)。

nginx -t 报错 "SSL_CTX_use_PrivateKey_file failed"?

私钥文件路径错误或文件权限不足。检查:

  • ssl_certificate_key 路径是否正确
  • 文件权限:sudo chmod 600 /etc/nginx/certs/example.com.key

部署后 HTTP 无法自动跳转 HTTPS?

确认 80 端口的 server 块配置了 return 301 https://$host$request_uri;,且防火墙/安全组放行了 80 和 443 端口。

证书到期后如何更新?

续签成功后重新下载新证书,替换服务器上的 .pem.key 文件,然后执行 sudo nginx -s reload

配置部署客户端后,续签成功可自动替换证书并重载 Nginx,无需手动操作。