续期为什么要错峰
大量域名同时续期会触发 CA 的限流,并集中占用验证资源,容易出现集体失败。把续期任务错峰执行、使用提前窗口,并对失败配置告警与重试,可以明显降低集中失败的概率。同时要注意续期成功不等于生效:新证书签好但没有被服务加载,旧证书会一直使用到过期。
基本信息
| 续期窗口 | 公信 CA 证书有效期较短,需留出充裕提前量 |
|---|---|
| 错峰手段 | 定时任务增加随机延迟 |
| 告警要求 | 退出码非零即通知,并核对部署钩子是否成功 |
| 关键点 | 续期与加载是两个环节,都要验证 |
典型使用场景
- 多域名批量续期:规划错峰与重试
- 排错:续期成功但服务仍用旧证书
- 合规检查:确认续期任务与告警配置齐全
- 应急:到期窗口临近时的加急处置
- 审计:核对续期日志与部署记录
续期与定时器
续期与定时器
certbot renew --quiet --deploy-hook 'nginx -s reload' # 续期并触发加载
echo $? # 检查退出码
systemctl cat certbot.timer | grep -i random # 确认定时器带有随机延迟环节检查
| 环节 | 检查点 | 失败后果 |
|---|---|---|
| 签发 | 退出码与日志 | 未续期,证书到期 |
| 安装 | 目标路径是否更新 | 服务仍读旧文件 |
| 重载 | 服务是否成功重载 | 新证书不生效 |
| 告警 | 是否按退出码通知 | 静默失败无人发现 |
续期成功不等于生效:重载失败时旧证书会一直使用到过期,因此告警必须覆盖安装与重载环节,而不能只看签发是否成功。
落地建议
- 为定时任务设置随机延迟,避免整点集中触发
- 把部署钩子的结果纳入告警
- 保留回退能力,加载失败不破坏现状
- 定期核对证书实际生效时间
续期失败常见于验证路径变化:域名记录被改动、验证目录权限变化或验证端口被占用,因此验证链路要纳入监控。
错峰不只是把任务分散到不同时间点,还包括让重试带退避:遇到服务端限流时立即重试往往加剧失败,指数退避配合随机延迟更容易成功。