Let's Encrypt 最容易的是拿到第一张证书。真正让网站保持在线的是续期自动化。一套证书自动化至少要证明四件事:验证能通过,新证书能落到正确位置,Web 服务能 reload,任何一步失败都有人在过期前知道。
按拓扑选 challenge
| Challenge | 适合场景 | 主要限制 |
|---|---|---|
| HTTP-01 | 简单公开 Web 服务器 | 需要 80 端口,不能签通配符 |
| DNS-01 | 通配符证书或复杂路由 | 需要 DNS API 自动化和严格 token 权限 |
| TLS-ALPN-01 | 443 端口上的 TLS 自动化 | 普通主机环境里较少使用 |
更短有效期会减少容错
Let's Encrypt 已公告证书会分阶段从 90 天缩短到 45 天。官方文章也提醒,当使用 45 天证书时,硬编码 60 天续期间隔将不再足够。续期逻辑应跟随 ACME 客户端和 CA 信号,而不是多年前写死的日历习惯。
能抓住真实失败的续期检查
- 每次改证书自动化后,跑 staging 或 dry-run 续期。
- 确认 Web 服务 reload 没有语法错误。
- 实际续期时确认线上证书已变化。
- 在过期前 30 天、14 天、7 天告警。
- DNS API token 最小权限,人员或系统变化时及时轮换。
Rate limit 是设计信号
Let's Encrypt 的 rate limit 对正常续期通常足够,对坏掉的循环脚本会很痛。如果在测试自动化,先用 staging 环境。如果脚本反复建账号或反复申请证书,rate limit 正在提醒你这套自动化还不适合生产。
小站点默认做法
单台 VM 上跑 Nginx 或 Caddy,可以使用 Web 服务官方 ACME 流程,或使用会安装 timer 的 Certbot 包。通配符证书优先使用 DNS plugin,并把 token 权限压到最小。除非临时项目,不建议长期使用手动证书。