Let's Encrypt 证书的有效期只有几十天,必须让工具自动续期,不要依赖手动操作。
使用 certbot
用系统包管理器或 snap 安装的 certbot,一般会自动创建续期的定时任务。确认一下:
Bash
systemctl list-timers | grep certbot
# 模拟续期,检查整个流程能否走通
certbot renew --dry-run证书续期以后,Nginx 需要重新加载才会用上新证书。可以加一个部署钩子:
Bash
certbot renew --deploy-hook "systemctl reload nginx"使用 acme.sh
acme.sh 安装时会自动添加每天运行的 cron 任务。安装证书时用 --reloadcmd 指定重新加载命令,之后每次续期都会自动执行。
再加一道保险
用监控服务或者一个简单的定时脚本检查证书的剩余天数,少于两周就发提醒。续期失败的常见原因是 80 端口被防火墙拦截、DNS 解析变更,或者 DNS 验证用的 API 密钥失效了。
正在读取登录状态…
暂无讨论,说说你的看法吧