应从何处获取 CAA 颁发者 ID?应如何对其进行验证?

Syn*_*hro 6 domain-name-system certificate-authority caa-record

证书颁发机构授权 (CAA) DNS 记录类型包括一个issue参数(也issuewild),该参数指定允许为您的域颁发证书的证书颁发机构的标识符。没关系,但有点模糊。

在您自己的 CAA 记录中设置值时,您应该如何找出您的 CA 的确切值?对于 letencrypt,他们在此处提供了一份文档其中提到了他们的问题标识符是letsencrypt.org,并且在他们的认证实践声明第 4.2.1 节中也有记录。如果我检查证书,我可以看到其中的各种字段,但是,尽管有一些包含它,但没有一个与此字符串完全匹配。这似乎不是确保 CA 与 CAA 记录中的内容相匹配的严格或可靠的方法——例如,是什么阻止了它被匹配letsencrypt.org.evilcorp.com

从人类的角度来看,这都是可行的,但机器可读性不是很强,并且是该 CA 独有的。

我也有来自 Comodo 的证书,我发现各种非权威来源说他们的 CAA 问题 ID 是comodoca.com(其他人说是comodo.com),但我还没有找到像 letencrypt 这样的官方文档。该comodoca.com字符串确实出现在我的证书的某些字段中,但不是出现在我希望能够可靠地找到它的上下文中 - 例如颁发者名称是COMODO ECC Domain Validation Secure Server CA (COMODO CA Limited from GB),CRL 是http://crl.comodoca.com/COMODOECCDomainValidationSecureServerCA.crl,OCSP URI 是http://ocsp.comodoca.com

SSLMate 有一个CAA 记录生成器,它包括一个 CA 列表及其颁发者 ID - 但这些信息是从哪里获得的?

现在考虑验证案例 - 给定证书和一个或多个 CAA 颁发者 ID,我们应该期望证书中的哪些元素与 CAA 颁发者完全匹配?或者该信息是从 CT 日志等其他服务获得的?

因此,简而言之,应从何处获取 CAA 颁发者 ID,以及应如何可靠地验证它们?

HBr*_*ijn 7

相关的RFC 6844没有对发行人规定任何标准,实际上恰恰相反,它赋予了几乎完全的自由:

发行人参数的语义由发行人单独确定。

但退一步说:据我所知,CAA 记录并不打算被最终用户用来验证他们获得的 TLS 证书是否由正确的证书颁发者颁发。

它旨在仅供(信誉良好的)证书颁发者使用,以验证他们是否被允许为该主机/域颁发(新)证书。

如果 CAA 记录存在,则只有证书颁发者需要检查 CAA 记录中是否存在他们期望/要求的内容。

您的证书颁发者,即您的 CA,将需要传达他们在 CAA 颁发记录中识别哪些域。以及它们需要哪些其他参数(如果有)。

例如:comodo.com用于其在线品牌的Comodo完全可以免费识别comodoca.comCAA 记录中完全不同的域。实际上,CA 也不限于仅识别单个域 - 例如 Comodo 识别四个不同的域comodo.com, comodoca.com, usertrust.comtrust-provider.com

注意: CAA 记录仅在颁发证书时使用。从已经颁发的有效证书中逆向工程 CAA 记录应该是什么并没有直接的目的。

应从何处获取 CAA 颁发者 ID?

据我所知,在这方面没有什么可以轻松自动化的,但对于手动方法:CA/浏览器论坛需要一个统一的位置来发布该信息:

“自 2017 年 9 月 8 日起生效,CA 的证书政策和/或认证实践声明的第 4.2 节阐明 CA 处理完全合格域名的 CAA 记录的政策或实践;该政策应与这些要求一致。它应明确指定CA 在 CAA“ issue”或“ issuewild”记录中识别为允许其发行的一组发行者域名。

  • CA/浏览器论坛 [需要](https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.5.1.pdf) 发布该信息的统一位置:*"有效自 2017 年 9 月 8 日起,**CA 证书政策**和/或认证实践声明的第 4.2 节**应**说明 CA 处理完全合格域名的 CAA 记录的政策或实践;该政策应与这些要求。它**应明确指定**CA在CAA“`issue`”或“`issuewild`”记录中认可的允许其发行的发行者域名集。”* (2认同)