首页主机资讯centos nginx ssl证书更新流程

centos nginx ssl证书更新流程

时间2025-12-06 01:47:04发布访客分类主机资讯浏览1341
导读:CentOS 上 Nginx SSL 证书更新流程 一 准备与检查 确认系统与服务:建议使用 CentOS 7/8,并确保 Nginx 已安装且运行正常。 备份现有证书与密钥(可选但强烈推荐): sudo cp /etc/pki/tls/...

CentOS 上 Nginx SSL 证书更新流程

一 准备与检查

  • 确认系统与服务:建议使用 CentOS 7/8,并确保 Nginx 已安装且运行正常。
  • 备份现有证书与密钥(可选但强烈推荐):
    sudo cp /etc/pki/tls/certs/your_domain.crt /etc/pki/tls/certs/your_domain.crt.bak
    sudo cp /etc/pki/tls/private/your_domain.key /etc/pki/tls/private/your_domain.key.bak
  • 检查 Nginx 配置语法:
    sudo nginx -t
  • 查看错误日志定位问题:
    tail -f /var/log/nginx/error.log
    以上步骤有助于在替换证书前确保环境与配置可用,降低更新风险。

二 使用 Certbot 自动更新(Let’s Encrypt)

  • 安装 Certbot 与 Nginx 插件(按系统选择其一):
    • CentOS 7:sudo yum install epel-release & & sudo yum install certbot python2-certbot-nginx
    • CentOS 8/Stream:sudo yum install epel-release & & sudo yum install certbot python3-certbot-nginx
  • 方式 A(推荐)— Nginx 插件自动修改配置并热更新:
    sudo certbot --nginx -d your_domain.com -d www.your_domain.com
    该方式会自动把证书写入 Nginx 配置并重启/热加载服务。
  • 方式 B — 仅获取/续期证书(手动管理 Nginx 配置):
    sudo certbot certonly --nginx -d your_domain.com
    常见证书路径为:/etc/letsencrypt/live/your_domain.com/fullchain.pem(证书链)与 /etc/letsencrypt/live/your_domain.com/privkey.pem(私钥),请在 Nginx 的 server 443 段正确配置 ssl_certificate 与 ssl_certificate_key。
  • 验证与生效:
    sudo nginx -t & & sudo systemctl reload nginx
    以上流程覆盖一键自动化与手动部署两种常见场景,适合大多数站点。

三 手动更新证书(自购或企业 CA)

  • 上传新证书与私钥到服务器(建议统一到 /etc/pki/tls//etc/nginx/ssl/):
    sudo cp new_certificate.crt /etc/pki/tls/certs/your_domain.crt
    sudo cp new_private_key.key /etc/pki/tls/private/your_domain.key
  • 设置私钥权限(仅 root 可读):
    sudo chmod 600 /etc/pki/tls/private/your_domain.key
  • 在 Nginx 配置中确认证书路径(示例):
    ssl_certificate /etc/pki/tls/certs/your_domain.crt;
    ssl_certificate_key /etc/pki/tls/private/your_domain.key;
  • 语法检查与热重载:
    sudo nginx -t & & sudo systemctl reload nginx
  • 验证:
    openssl s_client -connect your_domain:443 -servername your_domain
    以上步骤适用于非 Let’s Encrypt 证书或需要自定义证书存放路径的场景。

四 自动续期与验证

  • 测试续期流程(不写盘,安全验证):
    sudo certbot renew --dry-run
  • 设置定时任务(证书有效期 90 天,建议每周或每月尝试续期):
    sudo crontab -e
    示例(每周日凌晨 2:00 续期,3:00 重载 Nginx):
    0 2 * * 0 /usr/bin/certbot renew > > /var/log/letsencrypt/renew.log 2> & 1
    0 3 * * 0 /usr/bin/systemctl reload nginx > > /var/log/nginx/reload.log 2> & 1
  • 强制续期(仅在必要时使用):
    sudo certbot renew --force-renewal
  • 强制续期后务必重载 Nginx 并再次验证站点证书是否已更新。
    以上做法可确保证书临近到期时自动更新,避免过期导致的中断。

五 常见问题与排查

  • Nginx 插件不可用:执行 sudo yum install python-certbot-nginx(或 python3-certbot-nginx)后重试。
  • 权限错误:私钥应为 600,证书 644,属主 root
  • 配置路径不一致:确认 ssl_certificate/ssl_certificate_key 指向实际证书文件(Let’s Encrypt 默认在 /etc/letsencrypt/live/your_domain/)。
  • 使用了 CDN/反向代理/负载均衡:需在各厂商控制台同步更新证书并刷新缓存,否则浏览器可能仍显示旧证书。
  • 验证命令:
    • 查看站点证书链与有效期:openssl s_client -connect your_domain:443 -servername your_domain
    • 查看 Nginx 是否加载新证书:在浏览器查看证书详情或再次执行上面的 OpenSSL 命令。
      以上排查要点可快速定位更新失败或“已更新但浏览器仍显示旧证书”的常见原因。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos nginx ssl证书更新流程
本文地址: https://pptw.com/jishu/765408.html
nginx在centos上ssl协议选择建议 nginx在centos上ssl调试技巧

游客 回复需填写必要信息