我们的服务遍布中国

我们的服务遍布中国
乃至世界

光网所服务的品牌地域与城市
北京 天津 上海 广州 深圳 香港 厦门 江苏 浙江 山东
重庆 长沙 武汉 成都 西安 宁夏 丽江 青海 云南 乌鲁木齐
黑龙江 内蒙古 河北 ...
光网服务与合作的全球各地
美国 加拿大 德国 法国 英国 瑞士 意大利 荷兰
印度 日本 韩国 ...

不论你的品牌在何处
我们都可以提供完善的服务与帮助

致电

0512-56969630
您所在的位置:首页 > SSL证书

CAA记录(证书颁发机构授权记录)详解

发布时间:2017/9/12 19:49:18 浏览:88打印字号:

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记录格式

根据规范(RFC 6844),CAA记录格式由以下元素组成:

CAA <flags> <tag> <value>

名词解释:

CAA:DNS资源记录类型

<flags>:认证机构限制标志

<tag>:证书属性标签

<value>:证书颁发机构、策略违规报告邮件地址等

<flags>定义为0~255无符号整型,取值:

Issuer Critical Flag:0

1~7为保留标记

<tag>定义为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为保留标签

<value>定义为八位字节序列的二进制编码字符串,一般填写格式为:

[domain] [";" * 参数]

CAA记录示例

当需要限制域名example.com及其子域名可由机构letsencrypt颁发不限类型的证书,同时可由Comodo颁发通配符证书,其他一律禁止,并且当违反配置规则时,发送通知邮件到example@example.com。

配置如下(为便于理解,二进制Value值已经过转码,下同):

example.com. CAA 0 issue "letsencrypt.org"

example.com. CAA 0 issuewild "comodoca.com"

example.com. CAA 0 iodef "mailto:example@example.com"

如果子域名有单独列出证书颁发要求,例如:

example.com. CAA 0 issue "letsencrypt.org"

alpha.example.com. CAA 0 issue "comodoca.com"

那么,因子域策略优先,所以只有Comodo可以为域名alpha.example.com.颁发证书。

CAA记录查询

CAA记录是一个相对较新的资源记录,目前很多工具并不支持。以dig为例,不能适用其标准语法。若需要查询CAA记录,dig时需要直接指定RR类型(type257)。

例如:

  1. $ dig google.com type257


  2. ; <<>> DiG 9.8.3-P1 <<>> google.com type257

  3. ;; global options: +cmd

  4. ;; Got answer:

  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64266

  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0


  7. ;; QUESTION SECTION:

  8. ;google.com.            IN  TYPE257


  9. ;; ANSWER SECTION:

  10. google.com.     86399   IN  TYPE257 \# 19 0005697373756573796D616E7465632E636F6D


  11. ;; Query time: 51 msec

  12. ;; SERVER: 8.8.8.8#53(8.8.8.8)

  13. ;; WHEN: Thu Dec 29 21:07:18 2016

  14. ;; MSG SIZE  rcvd: 59

该查询的输出是二进制编码记录,需要转码才能知道具体CAA策略。

延伸阅读

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

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

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

但令人尴尬的是,目前国内的DNS解析商(如阿里云、DNSPOD、Cloudxns)均不支持CAA记录解析。希望国内DNS解析商紧跟技术发展步伐,尽快完成系统改造,支持CAA记录解析。