DNS证书颁发机构授权

DNS证书颁发机构授权（，简称：）是一种政策机制，允许域名持有人指定可以为其域签发证书的证书颁发机构。该政策凭借一个新的域名系统资源记录“CAA”来实现。

这一标准由计算机科学家和罗布·斯特拉德林（）起草，旨在应对公众对证书颁发机构安全性的担忧。它是由互联网工程任务组建议的一项互联网标准。

背景 
自2001年开始，曾出现一系列被错误颁发的数字证书。这在损害公开可信证书授权机构可信度的同时，也加速了各种安全机制的建设，包括证书透明度追踪不当签发，HTTP公钥固定和在阻止不当签发的证书，以及DNS证书颁发机构授权（CAA）在证书颁发机构方面阻止不当签发。

DNS证书颁发机构授权的第一稿由和罗布·斯特拉德林（）起草，并于2010年10月提交为互联网工程任务组（IETF）的互联网标准（RFC）草案。对此进行了逐步改进，并于2013年1月向提交了名为的标准提案。不久后CA/浏览器论坛展开讨论，并于2017年3月形成投票，赞成于2017年9月之前强制所有证书颁发机构履行CAA。但至少有一家证书颁发机构（科摩多）未能在截止日期前实施CAA。慕尼黑工业大学于2017年的一项研究发现，证书颁发机构在很多情况下未能正确施行该标准的部分内容。

，的报告显示，在最流行且支持TLS的前15万个网站中，只有3.4%使用了CAA记录。

记录 
实现CAA的证书颁发机构对CAA资源记录执行DNS查找，并检查自己是否被列为授权方，之后再颁发数字证书。每条CAA资源记录由以下三个属性组成，并以空格分隔：

 flag
 一个实现了信号系统的位段，以供将来使用。，它仅定义了发行者关键标志，用于指示证书颁发机构在颁发证书之前必须理解相应的属性标记。此标志允许将来通过强制扩展对协议进行扩展，类似于X.509证书中的关键扩展。
 tag
 为下列属性之一：
 issue
 此属性授权关联属性值中指定的域名的持有者，向包含该属性的域名颁发证书。
 issuewild
 此属性的作用类似于上述的issue属性，但仅授权颁发通配符证书。当请求为通配符证书时，这一属性优先于issue属性。
 iodef
 此属性指定证书颁发机构使用“”（，简称：IODEF）向域名持有者报告无效证书请求的方法。，并非所有证书颁发机构都支持此标签，因此不能保证所有证书在颁发时都会被报告。
 value
 与所选的tag属性所相关联的值。

当没有任何CAA记录时，颁发机构可以正常、不受限地进行颁发。而当存在一个空白的签发（issue）标签时，所有颁发被禁止。

监视证书颁发机构行为的第三方，可能会根据域名的CAA记录检查新颁发的证书，但是他们须知道域名的CAA记录有可能在证书颁发到他们检查的期间发生过更改。客户不能将CAA作为其证书验证过程的一部分。

扩展 
2016年10月26日，CAA标准的首个扩展草案发布。该草案在签发（issue）属性后方提议了一个新的account-uri标识，其将一个域名绑定到一个特定的帐户。2017年8月30日，这一草案得到修订，再引入了validation-methods（验证方法）标识，用以将一个域与一个特定的验证方法绑定。2018年6月21日，进一步的修改删除了account-uri和validation-methods的连字符，accounturi和validationmethods取而代之。

例子 
若要表明只有标识为ca.example.net的证书颁发机构有权为example.com及所有子域名颁发证书，可以使用以下CAA记录：

若要禁止颁发任何证书，可以列出一个空的颁发者列表：

若要标识证书颁发机构应将无效的证书请求报告给指定的電子郵件地址和端点：

若要使用该协议的一个未来扩展——例如，定义了一个新的future属性，需要证书颁发机构理解该属性后才能安全地继续处理——可以设置issuer critical标签：

另见 

 证书颁发机构
 证书透明度
 
 HTTP公钥固定
 域名伺服器記錄類型列表

参考来源

外部链接 
 

DNS记录类型
傳輸層安全協議