Skip to content

CAA 紀錄應該設定為哪個網域?

Tags:

最近遇到一個設定CAA的客戶,但某牌的DNS無法設定兩個CAA紀錄在同一筆上,導致憑證無法正確驗證及簽發,只好在不同層設定CAA紀錄,順便把CAA相關設定規則做整理。

還不知道怎麼設定CAA紀錄可以參考此篇”超快速 DNS CAA 設定 Step by Step“,首先可以將 CAA 紀錄設定在主網域或任何子網域。

例如:當你想替網域 www.community.example.com 設定 CAA 紀錄,你可以以設定在www.community.example.com(全名)、community.example.com 或 example.com 以上地方皆可,憑證頒發機構會從左到右檢查網域名稱,並在看到 CAA 紀錄後停止。

因此 community.example.com 上的 CAA 紀錄優先於 example.com。大多數人會將 CAA 紀錄直接設定為註冊網域 (example.com),這樣所有子網域就算忘記設定也都能使用其 CAA 紀錄。

另外請注意,因為讀取順序的關係子網域的 CAA 優先權大於其父網域,無論該紀錄的限制比父網域更寬鬆或嚴格。也是因此子網域可以使用比父網域更寬鬆的限制,亦可針對特定的測試站台訂製規則。

因 CAA 是基於DNS運作就如同所有的 DNS 請求一樣,也必須遵守 CNAME 紀錄。如果 www.community.example.com 有一個 CNAME 紀錄指向 web1.example.net,憑證頒發機構會先向 www.community.example.com 詢問 CAA 紀錄,接著他發現該網域有一個 CNAME 紀錄而不是 CAA 紀錄後,它會直接轉向向 web1.example.net 詢問 CAA 紀錄。

請注意,如果網域名稱有 CNAME 紀錄,則根據 DNS 標準中該域名不能有其他的紀錄。

CAA RFC 中描述了另一種 “爬樹” 的方式,要求憑證頒發機構同時檢查父網域的 CNAME 紀錄。後來勘誤中移除了這個要求,因此 Let’s Encrypt 和其他憑證頒發機構都沒有這個行為。

參考來源:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。