Let’s Encrypt 证书有效期只有 90 天,线上站点必须配置自动续期,避免证书过期导致 HTTPS 报错。
手动添加 crontab(推荐示例)
如果你希望自己显式管理续期任务,可用 root 用户添加:
|
|
加入下面一行(每天凌晨 3 点执行一次):
|
|
这条命令的含义:
0 3 * * *:每天 03:00 执行certbot renew:检查并续期即将过期的证书(不会每天都真正续期)--pre-hook:续期前停止 Nginx,避免 80/443 端口冲突(常见于 standalone 模式)--post-hook:续期后启动 Nginx>> /tmp/certbot-renew.log 2>&1:把日志追加写入文件,方便排查
建议先做一次模拟续期
定时任务加完后,先手动验证流程是否可用:
|
|
看到模拟续期成功,再交给定时任务长期运行。
常见注意点
- 如果你使用的是
webroot或nginx插件,很多场景下不需要停 Nginx,可改为续期后重载配置:
|
|
-
certbot renew只会在证书接近过期时才执行实际续期,所以每天跑一次是正常且常见做法。 -
建议把日志目录改成长期可追踪位置(如
/var/log/letsencrypt/),便于长期运维。