疑難排解 預計閱讀 11 分鐘

代理憑證錯誤排查

整理系統時間、中間人解密、節點異常與瀏覽器快取等可能原因,說明代理與憑證錯誤的關聯,並提供循序排查步驟。

先判斷憑證錯誤發生在哪一層

開啟代理後出現憑證警告,不代表 Clash 需要安裝根憑證。一般 HTTP CONNECT、SOCKS 和 TUN 轉送通常只會改變流量路徑,瀏覽器仍應與目標網站完成 TLS 握手並驗證網站憑證。先確認錯誤代碼、憑證涵蓋的網域和簽發者,再檢查系統時間與實際出口,比直接重新安裝客戶端更有效。

這裡涉及兩條不同的加密連線:一條是瀏覽器與目標網站之間的 HTTPS,另一條可能是代理核心與節點伺服器之間的 TLS。瀏覽器顯示 NET::ERR_CERT_AUTHORITY_INVALID,與核心日誌出現 x509: certificate signed by unknown authority,不能直接當成同一種故障處理。

依錯誤出現的位置縮小範圍
出現位置優先檢查下一步
瀏覽器隱私權警告頁面目標網站憑證、系統信任鏈、HTTPS 解密記下錯誤代碼並開啟憑證詳細資料
客戶端節點連線日誌節點憑證、SNI、憑證有效期限確認發生錯誤的節點與訂閱設定
訂閱更新期間訂閱網域憑證與更新請求路徑判斷是訂閱伺服器問題,還是本機網路問題
連線逾時或遭重設路由、連接埠、節點連線狀態先按連線故障處理,不要預設是憑證問題

記下 NET::ERR_CERT 後面的完整錯誤代碼

「你的連線不是私人連線」只是提示標題,後面的錯誤代碼才有助於判斷原因。Chrome 與 Edge 的代碼相近,Firefox 的命名方式不同,但檢查方向類似。瀏覽器版本、系統信任庫和企業政策也會影響實際提示。

  • NET::ERR_CERT_DATE_INVALID:本機時間不正確,或憑證已過期、尚未生效。先比對本機日期與憑證有效期限,不要只看右下角顯示的時間。
  • NET::ERR_CERT_AUTHORITY_INVALID:無法建立受信任的簽發鏈,可能與自簽憑證、缺少中繼憑證、本機信任庫異常或 HTTPS 檢查工具有關。
  • NET::ERR_CERT_COMMON_NAME_INVALID:憑證的主體別名(SAN)未涵蓋目前造訪的網域。舊錯誤名稱中的 Common Name,不代表現代瀏覽器只會檢查 CN 欄位。
  • NET::ERR_CERT_REVOKED:憑證已被判定為撤銷。應由網站或相關管理單位更換憑證,不宜透過降低瀏覽器驗證要求來處理。

憑證詳細資料至少記下四項

透過警告頁提供的憑證入口,或瀏覽器網址列中的網站資訊面板,查看造訪網域、SAN、簽發者、有效期限。不同版本的入口可能不同;若無法開啟詳細資料,先記下錯誤代碼和造訪時間即可。若多個互不相關的網站突然都由同一個陌生組織簽發憑證,應優先懷疑中間人解密,而不是認為這些網站同時都換錯了憑證。

反過來說,簽發者相同也不能單獨作為判定依據:許多網站本來就使用同一家公共 CA。應一併檢查憑證鏈、造訪網域、網路環境,以及是否安裝過 HTTPS 檢查軟體。

第一步:校準時間並建立對照

先同步系統時間

Windows 11 可前往「設定」→「時間與語言」→「日期與時間」,確認「自動設定時間」已開啟,再按一下「立即同步」。macOS 可前往「系統設定」→「一般」→「日期與時間」,確認已啟用自動設定。請確認年月日、時區及同步是否成功;只把顯示時區改成其他地區,無法修正底層系統時鐘的誤差。

從睡眠模式恢復、切換雙系統或虛擬機時間漂移,都可能讓憑證看起來「尚未生效」。修正時間後,重新建立連線再測試。如果只有一個網站仍顯示憑證過期,而其他 HTTPS 網站都正常,應檢查該網站的憑證,避免繼續變更全域設定。

同一網址進行四組測試

  1. 記下完整網址、錯誤發生時間,以及目前客戶端使用規則模式或全域模式。
  2. 保持網址不變,關閉系統代理;若同時啟用了 TUN,也要明確將它關閉,再測試一次。
  3. 重新啟用原本的代理路徑,只切換一個節點,觀察憑證錯誤是否隨節點變化。
  4. 在條件允許時,改用手機熱點或另一台裝置測試同一網址,區分本機問題與網路問題。

一次只變更一個變數。關閉系統代理後,瀏覽器擴充功能仍可能指定代理;關閉 TUN 後,系統代理也可能仍在運作。判斷是否「已直連」,應參考客戶端連線記錄,而非只看某個開關。直連無法連線只代表缺少對照結果,不能證明代理路徑一定安全或一定有問題。

第二步:檢查中間人解密與需認證的網路

防毒軟體的「HTTPS 掃描」、封包擷取工具、企業閘道和部分除錯代理,可能會先終止瀏覽器的 TLS 連線,再為目標網域簽發本機憑證。瀏覽器不信任對應的根憑證時就會發出警告;即使已信任,也應確認這是否符合預期的管理政策。

  • 個人裝置:回想近期是否啟用封包擷取工具、安裝網路防護軟體或匯入憑證。請透過相關軟體的設定還原原本的 HTTPS 檢查狀態,不要大量刪除系統根憑證。
  • 公司或學校裝置:比對簽發者名稱與組織說明,並聯絡管理員確認根憑證部署和代理政策。不要自行刪除受管理的憑證或規避組織的存取控制。
  • 旅館、機場與訪客 Wi-Fi:先透過系統跳出的網路登入頁面完成認證。認證閘道若錯誤攔截 HTTPS,可能會傳回網域不符的憑證;不要在遭劫持的 HTTPS 警告頁面輸入帳號。

第三步:確認節點、DNS 與實際規則

先查看連線記錄,再修改規則

規則模式會依規則順序選擇策略群組,策略群組名稱不等於實際使用的節點。請在客戶端的連線記錄或日誌中找到目標網域,確認命中的規則、策略鏈和最終出口。不同客戶端的選單名稱可能不同,通常是「連線」或「日誌」;如果只看到策略群組名稱,還需確認群組內目前選取的項目。

DNS 解析錯誤可能會讓請求連到錯誤的伺服器,並收到不符的憑證;不過 DNS 異常也常會表現為解析失敗或逾時。使用 fake-ip 時看到 198.18.0.0/16 範圍內的對應位址,不代表 DNS 一定遭到污染;mihomo 可透過對應關係還原網域並繼續轉送。

若只有某個節點會觸發錯誤,而另一個節點正常,應比對兩條路徑實際收到的憑證。出口網路干預、CDN 邊緣設定及目標網站的區域服務差異,都可能是原因。「換節點後恢復」是排查線索,不能單憑此事就認定節點正在竊取流量。不要為了測試而同時更換 DNS、切換全域模式、啟用 TUN 和修改規則,否則很難重現問題。

核心日誌出現 x509 時,應檢查節點設定

如果網頁只是無法連線,但客戶端日誌顯示連往節點伺服器時出現 x509 錯誤,應檢查的是節點 TLS 層。憑證網域、連線位址和 SNI 不一定相同:例如透過 IP 連線,但使用服務商提供的網域驗證伺服器名稱。請依照服務商提供的有效設定核對,不要自行猜測熱門網域填入。

mihomo 的節點 TLS 選項中可能會出現 skip-cert-verify。設為 true 會略過相關節點的憑證驗證,既無法修復瀏覽器收到的目標網站憑證,也會降低節點身分驗證的保障。正確做法通常是修正憑證鏈、伺服器名稱或伺服器端憑證,而非把這個選項當成通用開關。

第四步:使用 curl 區分通道與憑證故障

命令列比對可補充瀏覽器的提示,但必須先確認實際監聽連接埠。以下以本機 HTTP 或 mixed 連接埠 7890 為例;這是示範用連接埠,不代表所有客戶端的預設值。目標網址為 https://example.com/;重現實際問題時,請改用不含權杖的目標網址。

# 不使用明確指定的代理;若 TUN 仍啟用,流量仍可能被接管
curl -Iv --noproxy "*" https://example.com/

# 明確透過本機 HTTP 代理建立 CONNECT 通道
curl -Iv --noproxy "" --proxy http://127.0.0.1:7890 https://example.com/

在 Windows PowerShell 中,建議將命令裡的 curl 寫成 curl.exe,避免部分環境將它解析成其他命令。-I 用來要求回應標頭,-v 用來輸出連線診斷資訊;若特定網站不支援 HEAD 方法,可移除 -I,並將回應本文重新導向至本機空裝置。

常見輸出與解讀方式
輸出線索說明
200 Connection establishedHTTP 代理接受 CONNECT,不代表之後的網站憑證驗證也成功。
curl: (60)對端憑證驗證失敗,請繼續查看簽發鏈、網域或有效期限的具體問題。
curl: (7)連線建立失敗,請檢查監聽連接埠與服務狀態,不能直接歸因於憑證。
目標傳回 HTTP 403 或 405需要確認回應來自目標網站還是代理;若是 TLS 驗證成功後由目標網站傳回,應改查存取政策或請求方法。

不要加入 -k 或 --insecure,再宣稱「問題已修復」。這些參數會略過憑證驗證,只是改變測試條件。此外,curl 和瀏覽器可能使用不同的 TLS 後端、信任庫或 DNS 路徑;如果一方成功、另一方失敗,應繼續檢查差異,而非只相信其中一個結果。

最後檢查瀏覽器狀態與網站憑證鏈

快取不是憑證錯誤最常見的原因。清除所有瀏覽紀錄,通常無法修復已過期的憑證、錯誤的網域或不受信任的簽發者。較穩妥的順序是先關閉相關分頁,完全結束瀏覽器後再試,接著使用暫時建立的新設定檔或另一款瀏覽器比對。

  • 只有一款瀏覽器發生問題:檢查瀏覽器更新、擴充功能代理、企業政策及憑證信任設定。無痕視窗仍可能受系統代理、組織政策或獲准執行的擴充功能影響,不能視為完全隔離的環境。
  • 只有舊裝置發生問題:檢查作業系統是否仍受支援,以及信任庫是否已更新。不要隨意從論壇下載根憑證修補程式;請優先透過作業系統和瀏覽器提供的更新管道處理。
  • 多台裝置、不同網路都對同一網站報錯:網站憑證過期、缺少中繼憑證,或 CDN 某個邊緣節點部署錯誤的可能性較高。記下網域、時間和憑證資訊,提供給網站維護人員。
  • 清除狀態後短暫恢復,之後又重現:繼續確認連線重用、DNS 結果和實際節點是否變更,避免將時間上的先後誤認為快取已修復問題。

啟用 HSTS 的網站會要求使用 HTTPS,瀏覽器可能不會提供繼續前往的按鈕。這是安全政策正在生效,不建議刪除 HSTS 狀態來規避錯誤。真正的修復標準是:在維持正常憑證驗證的情況下,瀏覽器能成功連線,且憑證涵蓋目標網域、有效期限和簽發鏈皆正常。

排查結果與後續處理

  1. 校正時間後所有網站都恢復正常:檢查時間同步服務、睡眠恢復或雙系統切換問題,並維持正常的憑證驗證設定。
  2. 只有在受管理的網路出現統一簽發者:聯絡管理員確認 HTTPS 檢查的部署情況,不要自行匯入來源不明的根憑證。
  3. 錯誤只隨單一節點出現:保留節點識別資訊與已遮蔽敏感資料的日誌,改用驗證正常的路徑,並向服務提供者回報。
  4. 只有更新訂閱時出現錯誤:確認訂閱網域及其憑證,並檢查更新請求是否經過代理;不要將私密訂閱連結貼到公開檢測網站。
  5. 所有路徑都只有同一個網站無法連線:將憑證有效期限、SAN 和重現時間提供給網站維護人員,等待對方修正憑證部署。

提供給維護人員的有效資訊包括:作業系統版本、瀏覽器版本、客戶端與核心版本、完整錯誤代碼、發生時間、受影響的網域,以及切換節點或網路後的比對結果。客戶端版本和核心版本應分開記錄,介面相似不代表憑證處理方式完全一致。更多操作說明請參閱使用教學;一般連線問題可查閱常見問題。

結論:先確認錯誤發生在瀏覽器、節點 TLS 或訂閱請求,再依序檢查時間、憑證簽發者、實際出口和本機狀態。只有憑證驗證通過才算恢復;忽略警告或關閉驗證都不算修復。

下載Clash依平台選擇客戶端