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

nginx centos上ssl证书更新流程

时间2025-10-24 13:45:04发布访客分类主机资讯浏览973
导读:Nginx on CentOS SSL证书更新流程 1. 准备工作 确认Certbot安装:确保系统已安装Certbot及Nginx插件(若未安装,执行以下命令):sudo yum install epel-release sudo yu...

Nginx on CentOS SSL证书更新流程

1. 准备工作

  • 确认Certbot安装:确保系统已安装Certbot及Nginx插件(若未安装,执行以下命令):
    sudo yum install epel-release
    sudo yum install certbot python3-certbot-nginx
    
  • 备份旧证书(可选但推荐):避免更新失败导致服务中断,备份现有证书和私钥:
    sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /etc/letsencrypt/live/yourdomain.com/fullchain.pem.bak
    sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /etc/letsencrypt/live/yourdomain.com/privkey.pem.bak
    

2. 手动更新证书(适用于Let’s Encrypt证书)

  • 使用Certbot自动更新:Certbot支持自动检测证书有效期(默认3个月),执行以下命令更新指定域名的证书:

    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    

    命令会自动完成以下操作:

    • 验证域名所有权(通过HTTP挑战);
    • 下载新证书(fullchain.pemprivkey.pem);
    • 更新Nginx配置文件中的ssl_certificatessl_certificate_key路径;
    • 重启Nginx服务以应用新证书。
  • 手动替换证书文件(若未使用Certbot自动管理):
    将新证书文件复制到Nginx配置的路径(通常为/etc/letsencrypt/live/yourdomain.com/),并设置正确的权限:

    sudo cp new_certificate.crt /etc/letsencrypt/live/yourdomain.com/fullchain.pem
    sudo cp new_private_key.key /etc/letsencrypt/live/yourdomain.com/privkey.pem
    sudo chmod 600 /etc/letsencrypt/live/yourdomain.com/privkey.pem  # 私钥权限必须严格
    

3. 测试Nginx配置

更新证书后,务必测试Nginx配置文件的语法正确性,避免因配置错误导致服务中断:

sudo nginx -t

若输出显示syntax is oktest is successful,则表示配置无误。

4. 重新加载Nginx

配置测试通过后,重新加载Nginx以应用新证书(无需停止服务,不影响现有连接):

sudo systemctl reload nginx

5. 验证证书更新

  • 浏览器验证:访问https://yourdomain.com,点击地址栏的锁图标,查看证书有效期是否更新。
  • 命令行验证:使用openssl命令查看证书详情:
    openssl s_client -connect yourdomain.com:443 -servername yourdomain.com | openssl x509 -noout -dates
    
    输出中的notAfter字段应显示新证书的过期时间。

6. 设置自动更新(关键步骤)

Let’s Encrypt证书有效期为3个月,需定期更新以避免服务中断。推荐通过定时任务自动执行更新:

  • 测试自动更新(模拟执行,不实际更新):

    sudo certbot renew --dry-run
    

    若输出显示“Congratulations, all renewals succeeded”,则表示自动更新配置正确。

  • 添加定时任务:使用crontab设置每周日凌晨2点执行更新,并重启Nginx:

    sudo crontab -e
    

    添加以下内容(每周日凌晨2点更新证书,3点重启Nginx):

    0 2 * * 0 /usr/bin/certbot renew >
        >
         /var/log/certbot-renew.log 2>
        &
        1
    0 3 * * 0 /usr/sbin/systemctl reload nginx >
        >
         /var/log/nginx-reload.log 2>
        &
        1
    

    保存后,定时任务会自动生效。

注意事项

  • 证书路径:确保Nginx配置中的ssl_certificatessl_certificate_key路径与Certbot生成的路径一致(通常为/etc/letsencrypt/live/yourdomain.com/)。
  • 权限问题:私钥文件(privkey.pem)的权限必须设置为600,否则Nginx无法读取。
  • 日志排查:若更新失败,查看Certbot日志(/var/log/letsencrypt/letsencrypt.log)和Nginx错误日志(/var/log/nginx/error.log)定位问题。

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


若转载请注明出处: nginx centos上ssl证书更新流程
本文地址: https://pptw.com/jishu/734520.html
centos nginx ssl调试方法有哪些 centos nginx ssl重定向怎么设置

游客 回复需填写必要信息