nginx centos上ssl证书更新流程
导读: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.pem和privkey.pem); - 更新Nginx配置文件中的
ssl_certificate和ssl_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 ok和test 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 -datesnotAfter字段应显示新证书的过期时间。
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_certificate和ssl_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
