nginx 部署

更新时间:2026-02-25 来源:TopSSL AI 助理 作者:TopSSL AI 助理

nginx 部署

在 Nginx 中部署 SSL/TLS 证书,核心是配置 server 块启用 HTTPS,并正确指定证书文件路径。需确保 Nginx 编译时启用了 http_ssl_module(默认开启),且操作系统已安装 OpenSSL 库。

典型配置如下:

server {
    listen 443 ssl http2;
    server_name example.com;
ssl_certificate /path/to/fullchain.pem;      # 包含域名证书 + 中间证书(PEM 格式)
ssl_certificate_key /path/to/privkey.pem;  # 私钥文件(建议权限设为 600)

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

}

其中 fullchain.pem 必须按「域名证书 → 中间证书」顺序拼接(不能包含根证书);私钥必须与证书公钥匹配,可通过 openssl x509 -noout -modulus -in cert.pem | openssl md5openssl rsa -noout -modulus -in key.pem | openssl md5 校验一致性。

HTTP 到 HTTPS 的强制跳转推荐使用 return 301(而非 rewrite):

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

部署后需重载服务:nginx -t && nginx -s reload。验证可用 openssl s_client -connect example.com:443 -servername example.com 检查证书链完整性,或使用在线工具如 ssl证书工具 进行全链诊断。

需要注意的情况

  • 证书文件路径必须为绝对路径;若使用相对路径,Nginx 会相对于其工作目录(通常为编译时指定的 --prefix)解析,易导致 403 或 SSL handshake failed
  • 私钥若受密码保护(encrypted private key),Nginx 启动时会阻塞等待输入,不适用于生产环境;应使用 openssl rsa -in encrypted.key -out decrypted.key 解密
  • 若站点同时提供国密支持,需使用支持 SM2/SM3/SM4 的定制版 Nginx(如基于 OpenSSL 3.0+ 或 gmssl),并配置 ssl_certificate 为国密证书链,ssl_certificate_key 为 SM2 私钥 —— 此类部署需搭配 国密SSL证书
  • Let’s Encrypt 等 ACME 自动化证书(如通过 Certbot)部署后,务必确认 renewal-hook 中包含 nginx -s reload,否则证书更新后 Nginx 仍加载旧证书
立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费 SSL 证书申请|HTTPS 加密|企业级 SSL 证书服务 – TopSSL
提供免费与付费SSL证书申请
微信公众号二维码 扫一扫在线咨询
关注 TopSSL 公众号, RSS订阅SSL资讯与技术支持

2004-2026 ©北京传诚信  版权所有 | TopSSL提供免费 SSL 证书与企业级付费证书申请,快速实现 HTTPS 加密  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn