在 Debian 系统上使用 Nginx 实现 SSL 证书的自动续期,通常可以借助 Certbot 工具来完成。Certbot 是一个由 EFF(Electronic Frontier Foundation)开发的自动化工具,可以轻松地为 Nginx 配置和续期 Let’s Encrypt 证书。以下是详细步骤:
首先,确保你的系统已经安装了 Nginx 和 Certbot。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx
使用 Certbot 获取 SSL 证书。运行以下命令并按照提示操作:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Certbot 会自动配置 Nginx 并获取证书。你需要同意将 DNS 记录指向你的服务器,并可能需要输入你的域名密码。
Certbot 会自动设置一个 cron 任务或 systemd 定时器来定期检查并续期证书。你可以通过以下命令查看当前的续期计划:
sudo certbot renew --dry-run
如果一切正常,Certbot 会在证书到期前 30 天自动续期。你可以手动触发续期来测试:
sudo certbot renew --dry-run
Certbot 会在 /etc/letsencrypt/renewal-hooks/deploy/ 目录下生成一些续期脚本。确保这些脚本有执行权限:
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/*
你可以使用以下命令检查证书的续期状态:
sudo certbot certificates
Certbot 在续期证书后会自动重载 Nginx 配置。如果你需要手动重载 Nginx,可以使用以下命令:
sudo systemctl reload nginx
Certbot 的续期日志通常位于 /var/log/letsencrypt/ 目录下。你可以查看这些日志来监控续期过程:
sudo tail -f /var/log/letsencrypt/renewal.log
通过以上步骤,你可以在 Debian 系统上使用 Nginx 和 Certbot 实现 SSL 证书的自动续期。Certbot 提供了一个简单且可靠的方式来管理 SSL 证书,大大减少了手动操作的复杂性。