网络知识
Nginx如何实现自动续期SSL证书
2025-07-08 17:02  点击:0

Nginx本身不直接提供SSL证书的自动续期功能,但你可以结合Let’s Encrypt的Certbot工具来实现这一需求。Certbot是一个自动化的工具,可以用于获取、部署和更新Let’s Encrypt的SSL证书。以下是实现自动续期SSL证书的步骤:

1. 安装Certbot

首先,你需要在你的服务器上安装Certbot。以下是在不同操作系统上的安装方法:

Ubuntu/Debian
sudo apt updatesudo apt install certbot python3-certbot-nginx
CentOS/RHEL
sudo yum install epel-releasesudo yum install certbot python3-certbot-nginx
2. 获取SSL证书

使用Certbot获取SSL证书。假设你的域名是example.com,你可以运行以下命令:

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

Certbot会自动配置Nginx以使用新获取的SSL证书,并启动一个HTTP-01挑战来验证你的域名所有权。

3. 配置自动续期

Certbot会创建一个定时任务(cron job)来自动续期证书。你可以检查这个定时任务:

sudo crontab -l

你应该会看到类似以下的条目:

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot renew --deploy-hook "systemctl reload nginx"

这个条目表示Certbot每12小时检查一次证书是否需要续期,如果需要,它会自动续期并重新加载Nginx配置。

4. 手动测试续期

你可以手动测试续期过程以确保一切正常:

sudo certbot renew --dry-run

如果没有错误信息,说明续期过程是正常的。

5. 监控续期状态

Certbot会在续期成功后发送一封电子邮件通知你。你可以在Certbot的配置文件中设置电子邮件地址:

sudo nano /etc/letsencrypt/cli.ini

添加或修改以下行:

email = your-email@example.com
总结

通过以上步骤,你可以实现Nginx SSL证书的自动续期。Certbot会自动处理证书的获取、部署和续期,大大简化了管理SSL证书的过程。