譬如说,你的站点已经启用了 HSTS,甚至已经被固化到了浏览器内部。但是一个中间人仍然劫持了你的连接。你走了 HTTPS 协议?没问题,我也搞到了一个你所访问域名的 SSL 证书。要知道 SSL 连接使用的证书是服务端决定的,但是这个证书未必就是真正的域名所有人申请的。虽然普通人未必能搞到不属于你的域名的证书,但是证书颁发机构就不一样——虽然基于信誉的原因他们不太可能会这样做,但是没有任何外在的保护防止他们颁发并非由域名所有人申请的证书。
简而言之,一个有效的证书未必就是域名所有人申请的证书。就好比普通人造不出能过验钞机的假钞,但是再强大的验钞机也不能阻止造币厂监守自盗。这时就需要一个更上层的服务去验证这个“有效的证书”的合法性,这就是 DNS CAA 的作用。
DNS Certification Authority Authorization(DNS证书颁发机构授权,简称 CAA)是一项借助互联网的域名系统(DNS),使域持有人可以指定允许为其域签发证书的数字证书认证机构(CA)的技术。它会在 DNS 下发 IP 的同时,同时下发一条资源记录,标记该域名下使用的证书必须由某证书颁发机构颁发。
CAA是保护域名免受钓鱼的安全措施,网站运营商可以通过该措施来保护域名免于错误发布。在2013年由RFC 6844进行了标准化,允许CA“降低意外证书错误的风险”。默认情况下,每个公共CA都可以为公共DNS中的任何域名颁发证书,只要它们验证对该证书的控制域名。这意味着,如果在许多公共CA的验证过程中有任何一个错误,每个域名都可能受到影响。CAA为域名持有者提供了降低风险的途径。
CAA记录需要DNS提供商支持才可以进行设置启用,目前国外大多数主流DNS运营商已经支持,国内阿里云和CloudXNS也已经支持,DNSPOD目前不支持。所以要想使用DNS CAA,首先需要选择一个支持CAA记录的运营商。
设置开启DNS CAA,只需要添加一个证书的记录即可。
在Enter Your Domain Name
处填写域名
点击Auto-Generate Policy
在Incident Reporting (Optional)
处填写邮箱地址
在Publish Your CAA Policy
即可看到生成的内容
如果申请有多个证书,也会检测出来
添加记录如下:
记录类型:CAA
主机记录:@
(如果需要指定单个域名,填写单域名;否则填写@即可)
记录值: 0 issue "letsencrypt.org"
如果有多个记录,添加多条记录即可,类型都选 CAA
记录值: 0 issue "digicert.com"
记录值: 0 issue "letsencrypt.org"
记录值: 0 iodef "mailto:xinac721@126.com"
参考网站:
本文由 新逸Cary 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://blog.xinac.cn/archives/dns-caa.html
最后更新:2020-05-21 18:03:52
Update your browser to view this website correctly. Update my browser now