1、关于 CAA
有超过 100 个组织(称为证书颁发机构)可以颁发 SSL 证书,以保证您的域的身份。如果证书颁发机构行为不端并向攻击者提供您的域的证书,则攻击者可以冒充您的网站并拦截访问者的数据。
如果您像大多数域所有者一样,您只能从少数证书颁发机构获得证书。CAA(证书颁发机构授权)是一种 DNS 记录,可让您声明您实际使用的证书颁发机构,禁止其他人为您的域颁发证书。
以下是您使用 CAA 的一些原因:
- 您希望降低来自不安全证书颁发机构的风险。您可以使用 CAA 将您的域限制为您信任的不会颁发未经授权的证书的证书颁发机构。
- 您想阻止您的员工从未经授权的供应商处获取证书。
设置 CAA 很容易。使用方便的CAA 生成器 检查您授权的证书颁发机构。然后在您的域的 DNS 中发布生成的 DNS 记录。您的域需要由支持 CAA 的 DNS 提供商托管。幸运的是,现在许多主要的 DNS 提供商都支持 CAA。
CAA 是由 RFC 8659定义的 IETF 标准。自 2017 年 9 月 8 日起,所有公共证书颁发机构都必须尊重 CAA 记录。在为域颁发证书之前,他们必须检查域中的 CAA 记录,如果 CAA 记录集没有授权,则拒绝颁发。(如果没有 CAA 记录,他们可以签发。)
CAA 和子域
域的 CAA 记录集也适用于所有子域,除非子域有自己的 CAA 记录集。
例如,在证书颁发机构为 www.example.com 颁发证书之前,它将按以下顺序查询域中的 CAA 记录集,并使用它找到的第一个记录集:
CAA 和 CNAME
如果域名是另一个域的 CNAME(也称为别名),则证书颁发机构会在 CNAME 目标处查找 CAA 记录集(就像任何其他 DNS 查找一样)。如果没有找到 CAA 记录集,证书颁发机构将继续搜索原始域名的父域。
例如,如果 blog.example.com 是 blogprovider.example 的 CNAME,则证书颁发机构按以下顺序查找 CAA 记录集:
blogprovider.example
example.com
与其他 DNS 记录类型一样,域名不可能同时具有 CNAME 和 CAA 记录。
2、配置CAA记录
通过CAA配置助手:https://sslmate.com/caa/
查看自己域名证书的提供商
或者通过浏览器查看,访问自己的域名:https://nginx.bgxwz.com
选择自己的证书提供组织,我这里是Let’s Encrypt
因为我的DNS是托管在Cloudflare上面的,所以添加CAA记录方式如下:
3、测试CAA记录
CAA记录测试网站:https://caatest.co.uk/
测试结果:
✔ All looks good
代表CAA设置成功
✘ Couldn’t find a CAA record
No CAA found
代表CAA记录设置没有成功,需要重复部署2进行盘查
注意点:
根域的CAA和CNAME记录不能一起使用,因为CNAME记录的优先级高,会导致CAA记录不生效的问题,所以要一起使用的话,需要将根域的CNAME记录,修改为A记录,才可以一起使用。
例如通过Cloudflare的CNAME做代理的情况
需要解析出来Cloudflare的CNAME对应的后端IP地址
dig bgxwz.com.cdn.cloudflare.net
然后修改DNS的根域记录为A记录
值修改为上面解析出来的IP地址即可。
评论区