SSL 憑證續期失敗?用 CAA 記錄檢查允許簽發的憑證機構

網站的 DNS 看起來正常,但憑證申請或續期卻出現 CAA records block issuance?這可能是網域的 CAA 記錄限制了可簽發的憑證機構(CA)。先找出實際負責簽發的 CA,再檢查 DNS;不要急著刪除所有限制。

CAA 會影響什麼?

CAA 是一種 DNS 記錄,用來指定哪些 CA 可以為網域簽發憑證。issue 控制一般憑證;issuewild 控制萬用字元憑證。若沒有 issuewild,萬用字元簽發會依 issue 的規則處理。CAA 不會讓已簽發的憑證立刻失效,也不能取代私鑰保護。

先盤點實際簽發者與現有記錄

從憑證管理平台、ACME 客戶端或主機商確認目前使用的 CA,包括 Cloudflare 邊緣憑證與來源伺服器憑證;兩者可能不同。記錄完整主機名稱、申請的憑證類型,以及目前所有 CAA 值。以下使用範例網域,請自行替換:

dig CAA shop.example.com
dig CAA example.com
dig CNAME shop.example.com +short

CAA 查詢會從主機名稱往父層查找,遇到有 CAA 的層級即停止;CNAME 目標也要檢查。沒有輸出不等於已排除問題,先查看完整回應的狀態碼:SERVFAIL、逾時或 DNSSEC 問題要另行處理。必要時分別向權威 DNS 伺服器查詢,並從不同網路比對。

在 Cloudflare 新增允許的 CA

確定 Cloudflare 是該區域的權威 DNS 管理處後,到「DNS → Records」選擇「Add record」,類型選 CAA,填入適當名稱、標籤與 CA 網域,再儲存。以下僅示範允許 Let’s Encrypt;請依實際提供者與官方最新清單調整:

example.com. CAA 0 issue "letsencrypt.org"
example.com. CAA 0 issuewild "letsencrypt.org"

如果同一層有多個受授權 CA,逐一保留必要記錄。不要只加某一家就假設 Cloudflare 邊緣憑證一定使用它;依Cloudflare 的 CAA 文件核對可能使用的 CA。子網域若有自己的 CAA,會影響其繼承結果;變更前也要盤點其他服務。

驗證與復原

  • 儲存前記下原始名稱、flag、tag、值與 TTL,並保留管理介面匯出或截圖。
  • 儲存後用 dig 查主機、父層和 CNAME 目標,確認回應內容一致;等待既有快取到期後,再依提供者的方式檢查續期或簽發狀態。
  • 若影響其他服務,還原完整原始記錄並再次查詢;DNS 快取可能讓復原不會即時生效。避免反覆申請觸發 CA 限流。

若問題其實是網域仍解析到舊主機,可搭配DNS 搬家解析檢查釐清;CAA 授權正確也不代表網域驗證一定會成功。

相連文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *