Let's Encrypt 的工作人員在 11 月 10 日 22:02 UTC 確認,正式環境的 API 已經使用 6 個遠端驗證位置。現在每次驗證網域一共發出 7 個請求:主資料中心 1 個,遠端位置 6 個,此前遠端位置是 4 個。主資料中心和達到規定數量的遠端位置都拿到正確的回應,驗證才算通過。這項變化在 10 月 15 日預告,10 月 27 日先在測試環境啟用。Let's Encrypt 預計對使用者幾乎沒有影響,但有幾類設定值得提前檢查。

為什麼要加位置

從多個網路位置同時驗證,是為了防止攻擊者用 BGP 劫持把驗證流量引到自己那裡、騙到別人網域的憑證。Let's Encrypt 從 2020 年起就這麼做,這次增加位置是因為產業規則收緊:CA/瀏覽器論壇的基線要求第 3.2.2.9 條規定,從 2026 年 12 月 15 日起,憑證機構至少要用 5 個遠端網路位置做驗證,而且這些位置要分佈在至少 2 個不同的區域網際網路註冊管理機構的服務區域裡,不滿足就不得簽發。所以其他憑證機構也會做類似的調整。

哪些設定可能因此續期失敗

  • 按國家或地區封鎖存取的防火牆和 CDN 規則。驗證請求現在來自更多地區,只要有足夠多的位置被擋住,驗證就會失敗。Let's Encrypt 不公布驗證用的 IP 位址,而且說明這些位址隨時可能變,所以加白名單行不通,可靠的辦法是讓 /.well-known/acme-challenge/ 這個路徑對全球開放。HTTP-01 驗證走 80 連接埠,會跟隨重新導向到 80 或 443 連接埠。
  • 只對部分地區回應的權威 DNS,比如分地區解析或帶地區限制的 DNS 防火牆。DNS-01 驗證要從各個位置都能查到那條 TXT 記錄;HTTP-01 驗證之前也要先解析網域,同樣會受影響。
  • 安全群組或防火牆裡只放行「幾個已知 IP」存取 80 連接埠的。原因同第一條:驗證來源不固定,也不公開。

怎麼提前驗證

測試環境從 10 月 27 日起就是 6 個遠端位置,而 certbot 的演練模式走的正是測試環境,所以在伺服器上跑一次 sudo certbot renew --dry-run 就能知道新的驗證方式下能不能續期。失敗的話,錯誤訊息裡會寫明是哪個網域、哪種驗證方式沒通過,對照上面三條去查。現在檢查的另一個理由是續期會越來越頻繁:Let's Encrypt 的預設憑證有效期將在 2027 年 2 月 10 日縮短到 64 天,見這篇報導,6 天的短期憑證見這篇。憑證的申請和自動續期見Let's Encrypt SSL 憑證設定教學;如果你在 Cloudflare 裡設了按國家攔截的規則,記得給驗證路徑留出例外,Cloudflare 的基本用法見這裡。