首页/安全/加密与证书速查/证书续期失败排查

证书续期失败排查

ACME 续期失败集中在三类:HTTP-01 挑战路径不可达、DNS-01 记录未生效或权限不足、以及限流与解析问题。按错误类型逐步验证挑战路径,比反复重试更有效。

加密与证书速查安全更新于 2026-10-13

续期失败怎么排查

ACME 续期失败基本集中在三类原因:HTTP-01 挑战路径不可达、DNS-01 记录未生效或权限不足,以及限流与解析问题。相比反复重试,按错误类型逐步验证挑战路径更有效。核心思路是先在本地复现 CA 会做的检查,确认路径与内容都能被正常访问,再去看客户端与服务端的日志。

基本信息

挑战类型HTTP-01 走 80 端口路径校验,DNS-01 校验 TXT 记录
常见错误unauthorized(校验失败)、DNS problem、rateLimited
预演方式certbot renew --dry-run;签发前用 --staging 验证流程
日志位置客户端日志与服务端访问日志要一起看
拦截因素WAF、CDN 与重定向都可能破坏校验
告警要求续期失败必须告警,不能静默重试

典型使用场景

  • 排查续期告警:先看错误类型再定位具体路径
  • 变更后回归:站点根目录或反代规则调整后重新演练
  • 迁移环境:更换服务器后确认挑战路径仍然可达
  • 自动化改造:把续期失败纳入监控与值班流程
  • 限流规避:连续失败后改用测试环境复现,避免进一步触发限制

排查命令

排查命令
# 查看本地已管理的证书与到期时间
certbot certificates
# 用测试环境演练完整续期流程,不消耗生产配额
certbot renew --dry-run 2>&1 | tail -30
# 手工模拟 CA 的校验:确认路径可达且内容正确
curl -v http://example.com/.well-known/acme-challenge/testfile

错误类型与处置

错误原因处置
unauthorized挑战校验失败检查校验路径的可达性与内容
DNS problemTXT 记录未生效或权限不足等待传播并用查询命令确认
rateLimited触发签发频率限制改用测试环境演练
连接超时出口或源站不可达检查网络策略与解析结果
WAF 或 CDN 拦截 .well-known 路径、或把它跳转到其他域名,都会让 HTTP-01 校验失败;续期失败要触发告警而不是静默重试。
DNS-01 的关键是确认最终生效的记录:若使用 CNAME 指向其它域名,要等最终 TXT 记录可查询后再发起校验,否则会看到看似随机的失败。
演练要覆盖真实路径:在测试环境用 --dry-run 跑通一次,比在生产上反复试错的成本低得多,也能避免触发限流。

易错点

  • DNS-01 的 CNAME 未确认最终 TXT 生效就发起校验
  • WAF 阻断校验路径而误判为 ACME 服务端问题
  • 续期失败没有告警,直到证书过期才发现
  • 反代或伪静态规则改动后未重新演练,校验路径被静默破坏
  • 反复重试触发限流,把可恢复的问题拖成长时间无法签发

数据来源与参考

  • Let's Encrypt 官方文档(challenge 类型与限流)
  • RFC 8555(ACME)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌