介绍
证书颁发机构授权(CAA)是旨在防止坏角色创建未经授权的SSL / TLS证书的标准。 CAA记录允许域所有者指定哪些证书颁发机构(CA)被允许颁发证书。
先决条件
要遵循本教程,您将需要:
当您在DigitalOcean上设置您的域名时,您可以开始。
背景
证书颁发机构授权使用域名系统(DNS)资源记录。 如果您刚接触DNS, DNS术语,组件和概念简介可以帮助您熟悉。
像其他类型的DNS记录一样,CAA记录可以应用于整个域,如example.com
或特定的子域,如beta.example.com
。 同样地,记录的寿命可以通过给定的生存时间(TTL)值(秒)来设置。
除了这些常见的DNS字段之外,CAA记录使用三个特定于它们的字段:标签,值和标志。
标签
标签是ASCII字符串。 三个标签由CAA标准定义:
-
issue
授权单个CA发布特定主机名的任何类型的证书。 为了允许多个CA,每个CA都需要自己的记录。 -
issuewild
授权单个CA颁发通配符证书,并仅发布主机名的通配符证书。 再次,为了允许多个CA,每个CA都需要自己的记录。 -
iodef
定义了证书颁发机构可以报告策略违规的URL。 每个联系人URL都需要自己的记录。
除此之外,CAA标准允许CA定义自己的标签。 每个CAA记录仅限于单个标签。
值
值是与标签关联的字符串。
对于issue
和issuewild
标签,您通常将该值设置为由该记录授予的CA的域名,例如letsencrypt.org
对于iodef
您将提供应该报告违规策略的网址。 这可能是专门为此目的设置的服务的URL,但更常见的是,它将是一个mailto URI,如mailto:sammy@digitalocean.com
。
注意: CAA标准支持:
- 通过在值中发送分号(
;
)来阻止任何人发出证书 - 在CA名称之后允许名称值标签,例如:
letsencrypt.org; abc=cde
letsencrypt.org; abc=cde
在撰写本文时,DigitalOcean DNS不支持这些操作。 我们正在努力,我们将尽快支持他们。
旗
标志是0-255之间的无符号整数。 目前,此字段用于设置颁发者关键标志,该标志指定CA遇到不明白的标签时的行为方式。
默认标志为0.当CA请求DNS记录颁发证书时,如果有一个标签不明白,标志设置为0,则会忽略该特定记录,并将继续处理任何其他记录。
但是,如果响应中的任何记录的标志设置为1,并且CA不了解该记录中的标记,则符合标准的CA必须拒绝颁发证书。
您可以在RFC 6844中了解有关DNS认证机构授权(CAA)资源记录的更多信息
第1步 - 导航到CAA记录创建页面
在DigitalOcean控制面板的网络选项卡上找到该域,然后单击它:
从域内的创建新记录标题下选择CAA:
CAA选项卡包含添加CAA记录所需的字段。 在下一步中,我们将创建一个记录,让我们加密为我们的域颁发证书。
第2步 - 创建问题记录
我们将创建一个记录,让我们加密在digitalocean.love
发行任何主机名的证书
主机名
要将此记录应用于整个域,我们将输入@
。授予的授权
在这里,我们输入证书颁发机构的域名。 在我们的例子中,这将是letsencrypt.org
标签
由于我们希望允许我们加密,以生成任何类型的证书,我们将从下拉列表中选择issue
标签。FLAGS
我们接受默认值0
。TTL(SECONDS)
我们接受默认值3600
。
当我们单击创建记录时 ,新的CAA记录将显示在域记录集的顶部。
问题标签是加法的。 如果我们想允许另一个CA授予证书,我们需要添加一个附加记录。
第3步 - 创建发行记录
通配符是一个完整的子域名, *.digitalocean.love
。 在没有issuewild
记录的情况下,任何CA都可以发出通配符。 在这个例子中,我们将添加一个记录以允许不同的证书颁发机构Comodo发出通配符证书(只有通配符证书)。
主机名
我们将通过输入@
将其应用于digitalocean.love
。授予的授权
接下来我们将输入Comodo的域名comodoca.org
标签
我们将从下拉列表中选择issuewild
标签。FLAGS
我们接受默认值0
。TTL(SECONDS)
我们接受默认值3600
。
现在我们添加了Comodo,除非我们添加明确允许它们的记录,否则没有其他CA可以发出通配符证书。
第4步 - 创建iodef
记录
最后,我们将添加一个iodef
记录,以便CA可以在违反政策的情况下与我们联系。
主机名
再次,我们将输入@
来表示此联系人信息是针对整个digitalocean.love
域。授予的授权
接下来,我们将以mailto:caapolicy@digitalocean.love
格式输入联系人电子邮件标签
我们将从下拉列表中选择iodef
。FLAGS
我们接受默认值0
。TTL(SECONDS)
我们接受默认值3600
。
如果发生策略冲突,此记录可以让证书颁发机构知道谁联系。
第5步 - 管理现有记录
要更新或删除现有记录,请使用更多菜单:
这些更改将立即反映在控制面板中,但更改传播到DNS服务器的时间将由TTL值确定。
第6步 - 查询您的DNS记录
在最后一步中,我们将查看我们的DNS记录,以验证我们所做的更改对互联网是否可见。 请注意,较早版本的通用DNS工具,如dig
,默认情况下不会返回CAA记录。 如果要使用命令行工具查询记录,则需要更新您正在使用的工具。
我们将使用Google的基于Web的公共DNS服务 ,通过填写digitalocean.love
域并在RR类型字段中键入“CAA”,然后单击Resolve:
该查询应该返回答案中的所有三个CAA记录:
此输出验证CAA记录,类型257可见。
结论
在本教程中,我们提供了证书颁发机构授权记录的一些背景知识,并展示了如何添加三个标准资源记录类型, issue
, issuewild
和iodef
。
要了解DNS的更多信息,请访问DNS管理简介 。 您还可以从RFC 6844:DNS证书颁发机构授权(CAA)资源记录专门了解CAA记录的更多信息。