为网站设置DNS CAA保护的方法

  • A+
所属分类:建站笔记

随着浏览器的逆推,为了不让自己的站点被浏览器显示不安全,越来越多的站点开启了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,则设置成功生效。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • 闹闹 闹闹 Google Chrome 63.0.3239.132 Windows 10 来自天朝的朋友 中国 山西长治 1

      表示看不懂,能详细点就最棒了!