行业新闻与博客

什么是 CAA 记录?您的证书颁发机构授权指南

并非所有证书颁发机构都是平等创建的-有些证书颁发机构比其他证书颁发机构更可信赖。但是您知道吗,有一种方法可以控制哪些 CA 可以为您的域颁发证书?这是有关 DNS CAA 记录的所有信息...

出于某种原因,我们说您不喜欢或不信任特定的证书颁发机构(CA)。也许它们是不值得信任的,因为过去它们曾发生过许多证书错签或吊销问题。或者,也许他们过去刚给您发送了太多烦人的销售电子邮件,而您想坚持下去。另一方面,也许您只想使用一个或两个 CA 来简化证书管理(顺便说一句,好主意)。无论出于何种原因,都有一种方法可以锁定域并指定哪个 CA 颁发机构可以代表您颁发证书:您可以创建称为 CAA 记录的内容。



这就是所谓的设置证书颁发机构授权,或简称为 CAA。



我们的一些客户或转售商问我们“什么是 CAA?” 或“如何创建 CAA 记录?” 我们可以告诉您,这意味着“证书颁发机构授权”,并说它涉及在每天调用 DNS 记录之前生成 DNS 记录。但这并不能真正帮到您,正如您现在可能已经知道的那样,这在 Hashed Out 中并不是我们真正的风格。(特别是因为组织出于多种原因可能要对自己的域使用 CAA,并且有不同的方法来为其域创建 CAA 记录。)



考虑到这一点,我们正在全力以赴,深入探讨证书颁发机构授权的主题。我们将介绍什么是 CAA DNS 记录,为何如此重要以及如何为您的域创建一个。我们还将讨论证书颁发机构授权可能出现的问题。但是首先,什么是 CAA?CAA 如何帮助您保护域名?







                                                                                                                DNS 服务器中 CAA 记录的示例。



在此示例中,仅 DigiCert 和 Sectigo 被授权为该域颁发证书。注意:CAA 记录不是建议或请求-要求证书颁发机构遵守这些记录。如果他们不这样做,他们可能会受到信任。但是,我们仅需一点点就可以详细了解技术细节。(耐心,年轻的 padawan。)



如当前 Internet 工程任务组(IETF)提出的标准(RFC 8659)中所述:



证书颁发机构授权(CAA)DNS 资源记录允许 DNS 域名持有者指定一个或多个被授权为该域名颁发证书的证书颁发机构(CA)。通过 CAA 资源记录,公共 CA 可以实施其他控制措施,以减少意外发给证书的风险。”



作为域名持有人,您还可以指定您选择的 CA(或多个 CA,如果有的话)可以颁发通配符证书还是非通配符证书。因此,在某种程度上,拥有 CAA 就像是获得授权通过美国的保险机构通过网络看医生一样:它指定了您可以看到的医生以及他们被授权提供的承保范围。



证书颁发机构授权如何实现(及其带来的问题)

根据 IETF 的 DataTracker 工具,证书颁发机构授权于 2010年10月首次成为 RFC 6844 中 IETF 提出的标准。在 2017年,CA / 浏览器论坛(CA / B Forum)投票通过了 Ballot 187,该措施使在签发 SSL / TLS 证书之前必须对 CAA 记录进行 CAA 记录检查。根据 CA / B 论坛的投票结果:



该动议的目的是强制要求 CA 在发行时检查所有已发行证书的 CAA 记录(在少数特殊情况下除外),并在发现 CAA 记录不允许该 CA 发行的情况下阻止发行。因此,这允许域所有者设置一个发行策略,所有公共信任的 CA 都将遵守该发行策略,并允许他们减轻公共 CA 信任系统仅与最弱的 CA 一样强大的问题。”



但是,RFC 6844 并不完美。它有一些需要解决的问题。根据 DigiCert 的 CA / B 论坛代表 Timothy Hollebeek 的说法:



原始 RFC 为 CAA 指定了一种搜索算法,该算法不适当地处理了 CNAME 和 DNAME CAA 记录,从而阻止了一些本应能够获取证书的组织接收它们。此外,在规范应如何格式化 CAA 记录的规范中存在许多错误,并且缺乏关于如果存在 CAA 记录但不包含授权 CA 记录的记录该怎么办的信息。”



这就是导致当前提出的标准 RFC 8659 的原因,我们在前面已经提到过。与 CAA 记录检查有关的许多技术问题已在该提议标准的新版本中解决。



既然我们知道了 CAA 是什么及其历史,那么让我们来谈谈 CAA 记录本身。



什么是 CAA DNS 记录(CAA 资源记录)?

CAA 记录-或也称为 DNS CAA 记录,CAA DNS 记录,CAA 记录,CAA 证书或 DNS CAA-是您的域名系统的一种公共策略。作为域所有者,这是一种让所有人知道哪个证书颁发机构可以为您的域颁发 SSL / TLS 证书的方法。该记录为公共证书颁发机构提供了一个位置,以查找它们是否有资格为您的域颁发证书。



该域名系统本身的命名系统,使网络易于使用。这就像一个将域名转换为 IP 地址的翻译程序,服务器可以使用该 IP 地址检索正确的网站。因此,当您想在浏览器中打开特定网站时,DNS 系统会使其成为域名,以便您可以键入网站域,而不必记住完整的 IPv4 或 IPv6 数字 IP 地址。



例如,您可以键入 thesslstore.com 进入我们的网站,而不必记住 IP 地址 104.22.3.46。







                                                                                                             SSL Store 的网站 IP 地址的屏幕截图。



但是,实际上有多少网站使用 CAA 记录?Qualys 在 2020年7月8日的数据中报告,有 10,581 个网站(占他们调查的网站的 7.6%)支持证书颁发机构的授权。考虑到 Qualys 截至 7月3日,共报告了 8,329 个支持 CAA 的网站(或被调查网站的 6%), 2019年,您可以看到证书颁发机构的授权正在逐渐受到关注。  



DNS CAA 记录是什么样的?

您还记得我刚才说过要弄脏吗?是的,是时候 those 起袖子了–我们正在深入了解 CAA 记录。



如果想进一步了解真实的 DNS CAA 记录,请在 dnschecker.org 上查看 DNS 查找工具。在这里,我们为证书颁发机构 DigiCert 提取了 CAA 记录:







                                                                                                    通过 dnschecker.org 获得 DigiCert 的 CAA 记录的屏幕截图。



如您现在所知,CAA 证书记录基本上是一组指令,告诉 CA 在发行所有或特定类型的证书方面它们被授权或未被授权做什么。但是,您可能不知道,CAA 记录的格式不同,具体取决于它们要添加到的 DNS 文件。



例如,标准 BIND 区域文件的语法将与传统区域文件的语法不同。您可能必须使用哪个版本取决于您的 DNS 产品。例如:




  • IETF RFC 6844 指定了标准 BIND 文件的格式。

  • IETF RFC 3597 指定了旧 BIND 文件的资源记录(RR)的格式。



以下是 CAA 记录如何查找这些不同文件的一些示例:







                                                           此屏幕快照是使用我们的 CAA Record Generator 工具时,TheSSLStore.com 的 CAA 记录外观的示例。



现在,您可能在想:“ gh,我真的需要了解所有这些内容才能创建 CAA 记录吗?” 在大多数情况下,不会。这是因为,如果您像大多数人一样,会使用域注册商的 DNS 服务器,而不是运行自己的服务器。使用第三方 DNS 服务器时,您只能使用它们的系统或控制面板来创建 CAA DNS 记录。



稍后,我们实际上将向您展示如何在 cPanel 中执行此操作。但是首先,我们还有更多要讲的内容。



进入 CAA 记录的内容

出于本文的目的,我们将集中讨论 RFC 8659 中概述的 CAA 记录规范表示格式(因为它已淘汰 RFC 6844):



CAA <flags> <tag> <value>



还记得早些时候见过这样的事情吗?我们将分解每个部分的含义。







                                                                                        这是一个说明性示例,并且是 CAA 记录的细分。



正如您在上面的示例中看到的那样,DNS CAA 记录具有非常漂亮的基本设置……只要您知道它的不同部分,那就是。否则,可能会有些混乱。



DNS CAA 记录包括以下组件:




  • 标志 -RFC 6844 中概述的标志可以是两个特定状态之一:1(严重)或 0(非严重),默认值为 0。但是,就像使用标签一样,CA 也可以创建自己的自定义标志,以给出特定的发行方向。



在 1 个标志告诉 CA,它不能使用 CAA 记录在该区域如果不明白的财产。基本上,它告诉它无法继续尝试颁发证书,并且应该发送电子邮件通知域所有者有关 CAA 记录检查失败的信息。

在 0 标志告诉 CA,它可以使用在区域中的任何 CAA 记录信息,无论其是否了解物业。如果它不理解该 CAA 记录,则可以跳过它,并在 DNS 区域文件中使用另一个。




  • 标签 -标签用于指定授权 CA 在颁发 SSL / TLS 证书方面可以采取的措施。RFC 6844 中概述的三个标签是 issue,issuewild 和 iodef。但是,请务必注意,CA 还可以指定其自己的自定义标签,以为证书颁发过程提供指导。




  1. 该问题标签授权特定的 CA 颁发域非通配符证书和任何其子域。但是,此标签也可以用于限制任何 CA 为那些相同的子域颁发非通配符证书(此刻会多一点)。

  2. 该 issuewild 标签授权特定的 CA 颁发域通配符证书。

  3. 在 IODEF 标签(什么代表“事件对象描述交换格式”)提供了有关证书无效的请求信息。基本上,这使您(作为域所有者)能够在证书请求未通过 CAA 检查时接收电子邮件。这样,您可以及时了解与 CAA 相关的问题,并修复导致故障的错误。




  • 值 -值(通常在两个括号之间列出)是 CA 的域,有权为该域颁发证书。如果值为分号(;),则表示没有 CA 有权为该域颁发证书。  

  • TTL — TTL 字段,代表“生存时间”,是指服务器应在其缓存中保留您的 CAA 记录的时间段(秒)。



是的,要花很多钱。深呼吸,再喝点咖啡,因为我们还没有做完。现在是时候将所有这些放在一起了。



DNS CAA 记录示例

例如,假设我们想要 TheSSLStore.com 的 CAA DNS 记录,该记录指定只有 DigiCert 和 Sectigo 可以为 TheSSLstore.com 颁发非通配证书。CAA 记录如下所示:



thesslstore.com. CAA 0 issue “digicert.com”

thesslstore.com. CAA 0 issue “sectigo.com”

现在,如果我们要确保只有 Sectigo 可以颁发通配符,只有 DigiCert 可以颁发其他 SSL / TLS 证书,则 CAA DNS 记录应如下所示:



thesslstore.com. CAA 0 issue “digicert.com”

thesslstore.com. CAA 0 issuewild “sectigo.com”

现在,要为您的 CAA 记录设置 IODEF 属性,语法应如下所示:



thesslstore.com. CAA 0 issue “digicert.com”

thesslstore.com. CAA 0 iodef “mailto:email@thesslstore.com”

thesslstore.com. CAA 0 iodef “http://iodef.thesslstore.com”

好的,现在我们知道了什么是 CAA 记录以及它们的外观,让我们进入如何将其用于网站的方法。



如何添加,编辑或创建 CAA 记录

您可以通过多种方式为您的域或子域添加,编辑或创建 CAA 证书记录。例如,如果您拥有自己的 DNS 服务器,并且想直接在 DNS BIND 文件中添加或编辑 CAA 记录,则需要:




  1. 使用记事本打开域的 DNS 文件。这样可以避免无意中添加了其他文字处理程序(如 Microsoft Word)中的任何代码。

  2. 向该文件添加或更新 DNS CAA 记录信息。您可以在此处添加或更改信息(标签,值,标志等),就像上面看到的一样。

  3. 将区域文件保存在记事本中,然后将其关闭。



而已!



但是,如果您想使用控制面板或域注册商的 DNS 创建 CAA 记录怎么办?不用担心,您可以轻松地做到这一点。我们已经将 cPanel 的方向放在一起(如下)。但是,对于您的第三方域名注册商,您必须直接通过它们。



如何在 cPanel 中添加 CAA 记录

如果希望在 cPanel 中创建证书颁发机构授权记录,则也可以执行以下操作:



1.登录到您的 cPanel 帐户。



2.向下滚动到“域”部分,然后选择“ 区域编辑器”。







3.找到您要为其创建 CAA 记录的域,然后选择管理。







4.在区域编辑器中,找到标记为“ 添加记录”的蓝色按钮,然后单击向下箭头。从下拉列表中,选择添加“ CAA”记录。







5.在该特定域的“区域编辑器”菜单中,选择正确的选项或为表单的必填字段填写缺少的信息。这包括:




  • 网站的名称(您要为其添加 CAA 记录的域或子域)。

  • 记录类型(CAA)。

  • 的标志(0 或 1)。

  • 该标签(问题,wildissue,IODEF)。

  • 该值(即你给的权限创建 SSL / TLS 证书的 CA 的域)。







完成这些步骤后,只需选择右侧条目旁边的“ 添加记录”即可保存您的工作。



而已!



CAA 的工作方式以及证书颁发机构在证书发行中的作用

每当证书颁发机构收到发出新证书的请求时,它们首先会检查该域是否存在任何 CAA 记录。这是因为 CA / B 论坛的裁决要求所有商业 CA 在颁发任何证书之前必须检查 CA 记录。



当公共信任的 CA 运行 CAA DNS 记录检查时,将发生以下情况:




  • 如果有 CAA 记录: CA 必须检查以查看它们是否具有颁发证书的权限,并验证证书请求是否符合 CAA 记录规范。




  1. 如果两者均是,则 CA 可以转到证书颁发过程的下一个阶段。

  2. 如果对一个或两个都不是,则 CA 应该彻底拒绝该请求。




  • 如果不存在 CAA DNS 记录:如果 CA 找不到所涉及域的 CAA 记录,它将继续进行证书颁发过程的下一阶段。



不过,请务必注意,CAA 记录是分层工作的。这意味着,如果有人为您的一个子域请求证书,并且该子域没有可用的 CAA 记录,则 CA 将自动在 DNS 名称树中向上一级查找以在其中搜索 CAA 记录。如果他们在根域上找到一个,则该域也将用于有问题的子域。



但是,CAA 记录检查到底在哪里适合公共信任的 CA 的证书颁发过程?







此图说明了公共信任 CA 的证书颁发过程以及 CAA 记录检查适合该过程的位置。

行动中的证书颁发机构授权概览

让我们考虑以下示例,以更好地了解证书颁发机构授权如何应用于实际情况。



假设您要授权 Sectigo 和 DigiCert 代表您颁发证书,但没有其他人可以颁发证书。您将要做的是创建一个 CAA DNS 记录。通过此 CAA 记录,可以使每次向公共信任的 CA 提出新证书请求时,他们都将看到一条记录,指出只有这两个特定的 CA 可以为您的域颁发证书。因此,当 CA 检查域的 CAA DNS 记录时,他们将看到在暂停还是继续证书颁发过程方面,它们基本上是红灯还是绿灯。



这意味着,如果有人尝试通过另一个公共信任的 CA(GoDaddy,Let's Encrypt 或其他任何人)为您的域请求证书,那么他们的证书签名请求将遭到拒绝。



最后一个快速但重要的注意事项:尽管需要所有 CA 来执行 CAA DNS 记录检查,但这并不意味着您作为域名所有者必须创建 CAA 记录。如果您没有需要指定的任何与 CA 相关的要求,则不必创建 CAA 记录。域名所有者没有任何一种义务。



但是,将 CAA 用于您的域(和子域)有什么优势?



为什么您可能要考虑为您的域创建 CAA DNS 记录

尽管以前出现过问题,但是使用 CAA 可以帮助您防止证书发行错误。实施证书颁发机构授权的最大优势包括:




  • 防止欺诈或歪曲您的品牌。指定哪些 CA(或多个 CA)可以为您的域颁发证书,可以帮助您防止网络犯罪分子通过未经授权的 CA 请求未经授权的证书。这有助于保护证书持有者的身份。

  • 限制影子证书。通过这样做,只有拥有公司帐户的 CA 才能为您的域颁发证书,这可以帮助您限制影子证书。

  • 在证书颁发之前添加额外的安全层。要求通过 DNS 进行此 CAA 记录检查是确保 CA 验证其是否有权执行证书请求的一种更技术性的方法。  

  • 显示您对特定 CA 的偏好和支持。如果出于某种原因而只想让您组织的名称或声誉与特定的公共信任 CA 相关联,则可以使用 CAA 使其成为可能。

  • 增强的证书管理。使用 CAA,您可以更好地管理证书,而不是尝试跟踪来自多个 CA 的证书。



需要生成 CAA DNS 记录吗?别再看了

您是否知道 SSL 商店中有 CAA 记录生成器工具?不必大声疾呼(至少不要太大声),但这实际上是为您的域自动生成 DNS 记录的一种非常不错的方法。而且,如果您通过域注册商拥有 DNS,我们也将提供有关如何为多个提供商创建 CAA DNS 记录的指导。



是否选择设置 CAA DNS 记录完全取决于您。作为与许多世界领先的 CA 一起使用的 SSL / TLS 证书提供者,我们在这场竞赛中无人能及。我们只想确保您拥有尽可能多的信息,以便就最适合您的品牌标识和域名安全的问题做出明智的决定。



关于证书颁发机构授权和 DNS CAA 记录的最终思考

如您所见,使用 CAA 有其优势。它不仅可以让您更好地控制域的 SSL / TLS 证书的管理,而且还可以更好地控制品牌身份。虽然它并不完美,但您肯定可以在 IETF 的评论请求中看到该标准随时间的发展,但是证书颁发机构的授权确实可以实现,并且是在域中添加另一层身份和安全性的好方法。



我们希望本文能使您更​​加清楚 CAA 是什么,以及为什么创建 CAA DNS 记录对您的组织可能很有价值。每个 CAA 记录都有许多重要的小片段,并且了解每个组件的作用对于使 CAA 的使用对您的组织或企业最有价值至关重要。



本文由机器译制

需要帮助吗?联系我们的支持团队 在线客服