DEBUG.WIKI
V.PS:让项目靠近用户,亚太、欧洲、北美 KVM VPS
IPPeak:从目标地区访问网页,住宅代理、SEO 监测、广告验证
ZgoCloud:多地区部署,按需选节点;日本、美国、香港、德国

CAA 已填写 letsencrypt.org 仍拒绝签发:检查值里多出的引号

CAA查询有结果且值包含额外单引号时,签发机构标识会不匹配。区分DNS文本展示引号与实际值,保留issuewild及账户、验证方式限制。

DNS 面板里看起来已经允许 Let’s Encrypt,续期却提示 CAA record ... prevents issuance。如果查询结果是 CAA 0 issue "'letsencrypt.org'",记录值里实际带有一对单引号,它就不再是预期的签发机构标识。

这篇处理的是 CAA 查询成功、但授权值填写错误的场景。SERVFAIL、DNSSEC 验证失败或超时需要检查查询链路;多次申请证书不能修复这些问题,也不能修复 DNS 里保存的错误值。

查询保存的值,不只看面板截图

下面是只读示例,用实际申请的域名替换占位值:

dig example.com CAA

重点看返回的标记与值,而非只看字符串中是否出现 letsencrypt.org。以下两条仅为输出格式示例:

example.com. 7200 IN CAA 0 issue "'letsencrypt.org'"
example.com. 7200 IN CAA 0 issue "letsencrypt.org"

第一条的单引号是值的一部分;第二条外围的双引号则是文本展示方式。不要看到双引号就一律删除:直接维护 zone 文件时,双引号通常用于表示字符串,和在面板值输入框中键入额外引号不是一回事。

还应按实际域名检查生效策略。子域没有自己的 CAA 时可能采用父域策略;存在 CNAME 等条件时也要按别名及继承规则核对,不能只查域名根部就认为覆盖了所有申请名称。

改授权值,保留其他签发策略

Let’s Encrypt 使用的 CAA 签发机构标识是 letsencrypt.org。在面板要求分别填写 flags、tag、value 的情况下,通常应把 value 填为这个标识,避免再包上单引号;具体输入格式以面板规则为准,保存后重新查询结果。

直接维护 zone 文件时,下面是普通非通配符授权的结构示例:

example.com. IN CAA 0 issue "letsencrypt.org"

不要用这一行覆盖整个 CAA 集合。其他签发机构、issuewild 通配符策略,以及 validationmethods、accounturi 等参数可能是有意设置的约束。已存在 issuewild 时,通配符申请要另行核对该策略;普通 issue 正确不代表通配符也被允许。

若值本身没有多余引号,继续检查是否允许了正确机构、是否限制了不匹配的账户或验证方式,不要把所有 prevents issuance 都归因于引号。

等实际查询结果生效,再重试签发

修改前保存原 CAA 集合及 TTL;自管 DNS 应通过既有发布流程检查 zone 并更新版本,避免只改本地文件。确认每台权威服务器返回预期值,再考虑递归缓存仍可能保留旧记录,不能以面板“保存成功”代替公网生效。

证书错误里的名称可能与本次输入的主域不同,多域名证书应逐个核对。修复一个名称的 CAA 不保证其他名称通过验证,HTTP 或 DNS 挑战本身也仍要成功。

验收是目标名称的有效 CAA 策略符合申请方式、签发或续期成功,并且服务实际加载了新证书。需要恢复时还原原授权策略并重新核对生效结果;恢复可能再次禁止这项签发,因此应先确认业务需要保留哪套策略。