什么是CAA記錄,?
CAA,,全稱Certificate Authority Authorization,,即證書頒發(fā)機(jī)構(gòu)授權(quán),。它為了改善PKI(Public Key Infrastructure:公鑰基礎(chǔ)設(shè)施)生態(tài)系統(tǒng)強(qiáng)度,、減少證書意外錯(cuò)誤發(fā)布的風(fēng)險(xiǎn),,通過DNS機(jī)制創(chuàng)建CAA資源記錄,,從而限定了特定域名頒發(fā)的證書和CA(證書頒發(fā)機(jī)構(gòu))之間的聯(lián)系。從此,,再也不能是任意CA都可以為任意域名頒發(fā)證書了,。
關(guān)于CAA記錄,其實(shí)早在4年前便在RFC 6844中有定義,,但由于種種原因配置該DNS資源記錄的網(wǎng)站寥寥無幾,。如今,SSL證書在頒發(fā)之前對(duì)域名強(qiáng)制CAA檢查,就對(duì)想要https訪問的網(wǎng)站域名提出了解析配置的要求,。
CAA資源記錄詳解
CAA記錄可以控制單域名SSL證書的發(fā)行,,也可以控制通配符證書。當(dāng)域名存在CAA記錄時(shí),,則只允許在記錄中列出的CA頒發(fā)針對(duì)該域名(或子域名)的證書,。
在域名解析配置中,咱們可以為整個(gè)域(如example.com)或者特定的子域(如subzone.example.com)設(shè)置CAA策略,。當(dāng)為整域設(shè)置CAA資源記錄時(shí),,該CAA策略將同時(shí)應(yīng)用于該域名下的任一子域,除非被已設(shè)置的子域策略覆蓋,。
CAA記錄格式
CAA記錄格式由以下元素組成:
CAA <flags> <tag> <value>
釋義:
元素 | 說明 |
---|---|
CAA | DNS資源記錄類型 |
<flags> | 認(rèn)證機(jī)構(gòu)限制標(biāo)志 |
<tag> | 證書屬性標(biāo)簽 |
<value> | 證書頒發(fā)機(jī)構(gòu),、策略違規(guī)報(bào)告郵件地址等 |
<flags>定義為0~255無符號(hào)整型,取值:
Issuer Critical Flag:0
1~7為保留標(biāo)記
<tag>定義為US-ASCII和0~9,,取值:
CA授權(quán)任何類型的域名證書(Authorization Entry by Domain) : issue
CA授權(quán)通配符域名證書(Authorization Entry by Wildcard Domain) : issuewild
指定CA可報(bào)告策略違規(guī)(Report incident by IODEF report) : iodef
auth,、path和policy為保留標(biāo)簽
<value>定義為八位字節(jié)序列的二進(jìn)制編碼字符串,一般填寫格式為:
[domain] [";" * 參數(shù)]
CAA資源記錄示例
當(dāng)需要限制域名example.com及其子域名可由機(jī)構(gòu)letsencrypt頒發(fā)不限類型的證書,,同時(shí)可由Comodo頒發(fā)通配符證書,其他一律禁止,,并且當(dāng)違反配置規(guī)則時(shí),,發(fā)送通知郵件到example@example.com。
配置如下(為便于理解,,二進(jìn)制Value值已經(jīng)過轉(zhuǎn)碼,,下同):
example.com. CAA 0 issue "letsencrypt.org"example.com. CAA 0 issuewild "comodoca.com"example.com. CAA 0 iodef "mailto:example@example.com"
如果子域名有單獨(dú)列出證書頒發(fā)要求,例如:
example.com. CAA 0 issue "letsencrypt.org"alpha.example.com. CAA 0 issue "comodoca.com"
那么,,因子域策略優(yōu)先,,所以只有Comodo可以為域名alpha.example.com.頒發(fā)證書。