跳到主內容

設定 DNS CAA 來保護自己的網頁的憑證

什麼是 DNS CAA


DNS憑證頒發機構授權(英語:DNS Certification Authority Authorization,簡稱:CAA)是一種網際網路安全政策機制,允許域名持有人指定可以為其域簽發憑證的憑證頒發機構。該政策憑藉一個新的域名系統資源記錄「CAA」來實現。

 

目前全球簽發 SSL/TLS 憑證的機構已超過百個
要避免這些機構在某些情況下錯誤簽發憑證 (WoSign曾發生過)
就需要在簽發憑證前做一些檢查動作

在 RFC 6844 中定義了 DNS CAA Record
透過 DNS 的 CAA 紀錄,申明網域授權哪些機構可以簽發該網域的憑證
如果沒有設定 CAA 紀錄,則代表任何機構都可以簽發該網域的憑證
2013年1月 CA可以決定是否檢查該記錄,非強制性
2017年3月 CA/Browser 論壇決議 2017年9月起強制所有憑證發行機構在簽發憑證前必須檢查 DNS CAA 紀錄

設定 DNS CAA


如果是代管 DNS,則現行多數的DNS代管單位都可以直接設定 CAA 紀錄,若無法新增 CAA 紀錄,只能聯繫代管服務商要求提供協助設定,如果是自行管理DNS,則需要在自己的 DNS Server 上自行設定。

 

CAA Record 紀錄內容的設定


建議到 CAA Record Helper  這個網頁做設定,頁面會自動幫你產生您所需要填入到 DNS Server 值是什麼。

如果已經有 SSL/TLS 憑證並且使用中,依照下面的幾個步驟操作即可

  1. 填入 Domain Name
  2. 下面有三各按鈕,請直接選擇「Auto-Generate Policy
         Empty Policy:清空所有設定
         Auto-Generate Policy:自動產生設定檔,依據 Domain 當下使用中的憑證自動產生
         Load Current Policy:查詢 Domain 當下設定的 CAA Record
  3. 往下拉到畫面中的「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.

 

 

參考相關網頁: