1. ACME/Let's Encrypt 落地自动签发时的常见失败点中 DNS-01 传播延迟、HTTP-01 入口路由冲突、速率限制与通配符证书限制
在落地 ACME/Let's Encrypt 自动签发证书时,通常会在哪些环节失败?请结合 DNS-01 传播延迟、HTTP-01 入口路由冲突、速率限制与通配符证书限制展开说明?
- DNS-01 与 HTTP-01 挑战的失败根因
- Let's Encrypt 速率限制与配额
- 通配符证书的限制与选择
ACME 自动签发的常见失败点包括:一是 DNS-01 挑战的 TXT 记录传播延迟,Let's Encrypt 在授权应答后需等待 TXT 记录在权威 DNS 上完全生效,若 DNS 提供商传播慢或 TTL 设置过长会导致验证超时;二是 HTTP-01 挑战的入口路由冲突,ACME 会请求 /.well-known/acme-challenge/ 路径,若该路径被 Ingress 安全规则、重写或反代拦截,或证书分发服务与挑战服务端口冲突,验证会失败;三是速率限制,Let's Encrypt 对每证书、每域名、每注册账号有配额(如每周 5 个重复证书、每域名 50 证书/周),大规模签发或失败重试会触发限流;四是通配符证书限制,Let's Encrypt 通配符证书只能通过 DNS-01 验证,且只覆盖单级子域(*.example.com 不覆盖 a.b.example.com)。此外还有证书吊销后配额、私钥不匹配等。排障一般结合 openssl s_client、ACME 日志与 cert-manager 的 Order/Challenge 事件定位。
排障的核心是区分"验证没通过"与"签发后失败":验证失败多为 DNS 传播、入口路由与限流,签发后失败多为证书链或部署问题。落地时应优先评估 DNS-01 + 通配符(若需)并预留缓冲与重试退避规避限流。
# 检查给定的 TXT 记录是否已传播(DNS-01 调试)
dig -t TXT _acme-challenge.example.com +short
# 用 curl 验证 HTTP-01 挑战路径是否可达
curl -v http://example.com/.well-known/acme-challenge/token