目前全球簽發 SSL/TLS 憑證的機構已超過百個
要避免這些機構在某些情況下錯誤簽發憑證 (WoSign曾發生過)
就需要在簽發憑證前做一些檢查動作
在 RFC 6844 中定義了 DNS CAA Record
透過 DNS 的 CAA 紀錄,申明網域授權哪些機構可以簽發該網域的憑證
如果沒有設定 CAA 紀錄,則代表任何機構都可以簽發該網域的憑證
2013年1月 CA可以決定是否檢查該記錄,非強制性
2017年3月 CA/Browser 論壇決議 2017年9月起強制所有憑證發行機構在簽發憑證前必須檢查 DNS CAA 紀錄
如果是代管 DNS,則現行多數的DNS代管單位都可以直接設定 CAA 紀錄
若無法新增 CAA 紀錄,只能聯繫代管服務商要求提供協助設定
如果是自行管理DNS,則需要在自己的 DNS Server 上自行設定
至於 CAA Record 紀錄內容的設定
鸚鵡推薦 SSLMate 提供的 CAA Record Helper 來協助產生
使用很簡單:輸入 Domain 或 FQDN 後,一兩個步驟就產生 CAA Record 內容
同時針對 BIND、PowerDNS、NSD、Knot DNS、tinydns、dnsmasq 等伺服器提供設定 CAA 紀錄的方式
如果已經有 SSL/TLS 憑證並且使用中,依照下面的幾個步驟操作即可
- 填入 Domain Name
- 下面有三各按鈕,請直接選擇「Auto-Generate Policy」
Empty Policy:清空所有設定
Auto-Generate Policy:自動產生設定檔,依據 Domain 當下使用中的憑證自動產生
Load Current Policy:查詢 Domain 當下設定的 CAA Record - 往下拉到畫面中的「4. Publish Your CAA Policy」就是產生的結果
如果是使用較舊版本的 DNS Server (如 BIND 9.9.6 以前的版本) 就參考「Legacy Zone File」
將設定值複製貼到 BIND 的 zone 設定檔案中,重新啟動即可
重新啟動後可以再回到 CAA Record Helper 來進行檢查
填入 Domain 後直接點擊「Load Current Policy」來載入現有的政策
若設定成功往下拉就會看到和上面步驟產生結果一樣
若沒有設定成則會彈出提示框
「YORU_DOMAIN does not have a CAA policy. Any certificate authority can issue certificates.」
真的就是簡單幾個步驟而已,建議設定唷