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