随着浏览器的逆推,为了不让自己的站点被浏览器显示不安全,越来越多的站点开启了HTTPS加密协议,随之而来的就是一些针对SSL证书的安全设置,本文即为设置证书的DNS CAA认证,可有效组织伪造证书发起的中间人攻击。
什么是 DNS CAA?
DNS Certification Authority Authorization(DNS证书颁发机构授权,简称 CAA)是一项借助互联网的域名系统(DNS),使域持有人可以指定允许为其域签发证书的数字证书认证机构(CA)的技术。它会在 DNS 下发 IP 的同时,同时下发一条资源记录,标记该域名下使用的证书必须由某证书颁发机构颁发。
CAA是保护域名免受钓鱼的安全措施,网站运营商可以通过该措施来保护域名免于错误发布。在2013年由RFC 6844进行了标准化,允许CA“降低意外证书错误的风险”。默认情况下,每个公共CA都可以为公共DNS中的任何域名颁发证书,只要它们验证对该证书的控制域名。这意味着,如果在许多公共CA的验证过程中有任何一个错误,每个域名都可能受到影响。CAA为域名持有者提供了降低风险的途径。
启用DNS CAA
CAA记录需要DNS提供商支持才可以进行设置启用,目前国外大多数主流DNS运营商已经支持,国内阿里云和CloudXNS也已经支持,DNSPOD目前不支持。所以要想使用DNS CAA,首先需要选择一个支持CAA记录的运营商,国外DNS运营商的支持情况可参考下图或这里:CAA Record Helper
设置开启DNS CAA,只需要添加一个证书的记录即可,根据规范(RFC 6844),CAA记录格式由以下元素组成:
CAA
名词解释:
CAA:DNS资源记录类型
:认证机构限制标志
:证书属性标签
:证书颁发机构、策略违规报告邮件地址等
定义为0~255无符号整型,取值:
Issuer Critical Flag:0
1~7为保留标记
定义为US-ASCII和0~9,取值:
CA授权任何类型的域名证书(Authorization Entry by Domain) : issue
CA授权通配符域名证书(Authorization Entry by Wildcard Domain) : issuewild
指定CA可报告策略违规(Report incident by IODEF report) : iodef
auth、path和policy为保留标签
定义为八位字节序列的二进制编码字符串,一般填写格式为:
[domain] [“;” * 参数]
以本站伤逝的安详为例,我使用的是阿里云的云解析,证书的颁发机构为Comodo,则设置如下:
记录类型选择CAA
主记录为www,之后再同样设置一个@,如果使用泛域名证书,则使用*
记录值为:0 issue "comodoca.com",如果是是Let's Encrypt的证书,则为:0 issuewild "letsencrypt.org"
TTL随意,建议不常修改则为最大时间数值
检测DNS CAA是否生效
设置之后,DNS需要一些时间同步,等待一会后,可以前往SSL Labs进行测试,在DNS CAA一栏,如果现实Yes,则设置成功生效。
2018 年 07 月 27 日 18:44 山西省长治市 1F
表示看不懂,能详细点就最棒了!