Let’s Encrypt HTTP-01 驗證失敗?檢查 80 埠、挑戰路徑與重新導向

憑證自動續期出現 challenge failed,網站本身卻能用 HTTPS 開啟,兩者並不矛盾。HTTP-01 需要憑證機構從公開網路透過 80 埠讀取指定路徑的驗證內容;首頁可開不代表驗證路徑也正確。本文適用於已確認使用 HTTP-01,且你有權管理網域和網站伺服器的情況。

先確認失敗的網域與驗證方式

從 ACME 用戶端或主機控制台的續期日誌記下失敗網域、時間、HTTP 狀態和 challenge URL。不要公開帳戶金鑰或 challenge token 的完整除錯資料。檢查 A 與 AAAA 是否指向目前服務該網域的正確入口;多台主機、負載平衡器或 CDN 存在時,每個可能接收驗證流量的入口都須能回應正確內容。若是 DNS-01,應改查 TXT 或委派,參考DNS-01 委派教學。

用臨時檔測試實際路徑

先在測試網域或維護時段執行。確認 ACME 用戶端使用的實際 webroot,在該根目錄建立 .well-known/acme-challenge 資料夾及無敏感內容的臨時檔,例如檔名 diagnostic-test、內容 acme-test-2026。不要覆蓋用戶端正在使用的 challenge 檔,並記錄建立的檔案以便刪除。從站外網路執行:

curl -i http://www.example.com/.well-known/acme-challenge/diagnostic-test

將網域換成自己的實際網域。預期最終收到 200 且本文完全等於 acme-test-2026;404 可能是 webroot 或路由不符,403 可能是存取規則,連線逾時則需核對公開 80 埠、負載平衡器及防火牆。若收到 301 或 302,查看 Location 並用 curl -i -L 追蹤,檢查最終回應仍是測試內容。這項測試只證明測試當下的路徑可達,不保證所有驗證來源、IPv4/IPv6 及各台節點都一致。

Let’s Encrypt 的官方文件說明 HTTP-01 從 80 埠開始,可追蹤有限次數的 HTTP 或 HTTPS 重新導向,且只接受 80 或 443 埠;HTTPS 重新導向時不驗證憑證。不要據此關閉整站 HTTPS 或取消憑證驗證於一般使用者流量。

修正、驗證與復原

核對實際虛擬主機、webroot、反向代理與安全規則;先備份設定,針對 challenge 路徑修正,不要全站停用防護。多節點需讓每個節點提供相同驗證內容或正確路由。修正後重新做站外測試,再依用戶端官方文件執行測試續期;注意測試環境與正式簽發不同,避免反覆正式申請觸發限制。成功後檢查正式憑證的網域、到期時間與自動續期紀錄。刪除自己建立的 diagnostic-test;若新規則造成其他路徑異常,以備份復原並重新測試。

相連文章

臉書留言

一般留言

發佈留言

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