说起 DNS CAA 记录,可能很多站长们都会感觉很陌生,其实这个应该是HTTPS后需要的一个专门增强SSL证书安全性的DNS解析记录。譬如说,你的站点已经启用了HSTS,甚至已经被固化到了浏览器内部。但是一个中间人仍然劫持了你的连接。你走了HTTPS协议?没问题,我也搞到了一个你所访问域名的SSL证书。要知道SSL连接使用的证书是服务端决定的,但是这个证书未必就是真正的域名所有人申请的。虽然普通人未必能搞到不属于你的域名的证书,但是证书颁发机构就不一样——虽然基于信誉的原因他们不太可能会这样做,但是没有任何外在的保护防止他们颁发并非由域名所有人申请的证书。

CAARecords.png

简而言之,一个有效的证书未必就是域名所有人申请的证书。就好比普通人造不出能过验钞机的假钞,但是再强大的验钞机也不能阻止造币厂监守自盗。这时就需要一个更上层的服务去验证这个“有效的证书”的合法性,这就是DNS CAA的作用。

DNS Certification Authority Authorization(DNS证书颁发机构授权,简称CAA)是一项借助互联网的域名系统(DNS),使域持有人可以指定允许为其域签发证书的数字证书认证机构(CA)的技术。它会在DNS下发IP的同时,同时下发一条资源记录,标记该域名下使用的证书必须由某证书颁发机构颁发。比如我明月登楼的博客(www.imydl.com)使用了Let's Encrypt颁发的免费证书,我可以同时使用CAA技术标记我的博客官网域名www.imydl.com使用的SSL证书由Let's Encrypt颁发,这样就可以(在一定程度上)解决上面所述的问题。

启用 DNS CAA

CAA 是 DNS 服务器下发的记录,所以首先要 DNS 服务器支持才行。明月虽然域名购买和备案都是在阿里云进行的,但是还是习惯性的第一时间将新域名都直接切换到 CloudXNS 了,万幸的是 CloudXNS 已经支持 DNS CAA 记录解析了,国内好像是首家吧,哈哈, CloudXNS 威武呀!

20180214145045.png

上图即为 CloudXNS 里本博客(www.imydl.tech)的 DNS CAA 解析设置。

使用 SSL Server Test 可以很方便的检验你的域名是否启用了 DNS CAA。

20180214145234.png

上图最后一行的绿地黑色加重字体里已经可以看到【明月登楼的博客】(www.imydl.com) DNS CAA 记录解析已经生效了。

20180214145500.png

据说这个解析记录可以给HTTPS认证加分的,A+评级还是很给力的嘛!

DNS CAA的前世今生

强制CAA检查的提议

2017年3月7日,CA|B Forum (一个全球证书颁发机构与浏览器的技术论坛)发起了一项关于对域名强制检查CAA的一项提议的投票,获得187票支持,投票有效,提议通过。

提议通过后,将于2017年9月8日根据Mozilla的Gervase Markham提出的检查CAA记录作为基准要求来实施。

详情参见:Ballot 187 – Make CAA Checking Mandatory

什么是CAA记录?

CAA,全称Certificate Authority Authorization,即证书颁发机构授权。它为了改善PKI(Public Key Infrastructure:公钥基础设施)生态系统强度、减少证书意外错误发布的风险,通过DNS机制创建CAA资源记录,从而限定了特定域名颁发的证书和CA(证书颁发机构)之间的联系。从此,再也不能是任意CA都可以为任意域名颁发证书了。

关于CAA记录,其实早在4年前便在RFC 6844中有定义,但由于种种原因配置该DNS资源记录的网站寥寥无几。如今,SSL证书在颁发之前对域名强制CAA检查,就对想要https访问的网站域名提出了解析配置的要求。

CAA资源记录详解

CAA记录可以控制单域名SSL证书的发行,也可以控制通配符证书。当域名存在CAA记录时,则只允许在记录中列出的CA颁发针对该域名(或子域名)的证书。

在域名解析配置中,咱们可以为整个域(如example.com)或者特定的子域(如subzone.example.com)设置CAA策略。当为整域设置CAA资源记录时,该CAA策略将同时应用于该域名下的任一子域,除非被已设置的子域策略覆盖。

互联网证书环境前景剖析

以下所有言论仅代表个人观点。

CAA记录规范的提出已4年之久,但从未被普及;如今 CA|B Forum 关于强制CAA检查的提议亦结束3月有余,支持检查CAA的证书颁发机构依旧寥寥无几,支持配置CAA记录的DNS厂商更是少之又少。因而个人认为,这项规范的实施进程预计还是会挺艰难的。

不过从互联网安全发展来看,互联网受众越来越大,概念、架构越来越复杂,社会的重视程度一直在稳步提高。全面https也推行有一段时间了,强制CAA的普及大概只是时间问题。

附赠支持 CAA 记录的国外 DNS 服务这里有比较详细的记录:https://sslmate.com/caa/support

最后修改:2018 年 02 月 14 日
如果觉得我的文章对你有用,请随意赞赏