某台持續爬網頁抓資料的排程忽然出現 The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel 訊息,推測為 SSL 憑證失效引起。

連至該主機使用瀏覽器檢視,果真憑證顯示異常:

錯誤訊息如下:

Windows does not have enough information to verify this certificate.
Windows 沒有足夠資訊可以確認這個憑證。

對照其他主機看到的憑證則很正常。

爬文得知此類問題出在缺少受信任的根憑證授權單位(Trusted Root Certification Authorities)或中繼憑證授權單位(Intermediate Certification Authorities)憑證資料造成。實際檢查問題主機,VeriSign CA 憑證 OK,但少了 Symantec Class 3 Secure Server CA - G4 中繼 CA 憑證。

最後,由其他主機匯出 Symantec 中繼 CA 憑證安裝在問題主機後順利排除問題!

問題已解,留下幾個疑點:

  1. 缺憑證問題多發生於第一次連網站。早上還正常,近中午才出現缺少中繼 CA 憑證錯誤有些令人費解。 (新憑證有效起始日期頗近,出錯時間又接近整點,不排除正巧遇上站方換憑證的可能性)
  2. 依我的理解,SSL 協商過程網站有責任附上中繼 CA 憑證供瀏覽器驗證信任鏈,為何需要手動補安裝?

因無法重現問題反覆檢驗,先歸入 X 檔案。

貼文後沒多久,Aska 回饋一則相似案例:因 SHA1 升級 SHA2 換 SSL 憑證(2017 起瀏覽器們將開始撲殺 SHA1 SSL 憑證),中繼 CA 由 Verisign Class 3 Secure Server CA - G3 換成 Symantec Class 3 Secure Server CA - G4,客戶端也發生缺少中繼 CA 憑證的狀況,推測本案應為相似情境。


Comments

# by 黃彥儒

雖然網站有責任附上中繼憑證,但是如果不會設定的人會忘記,而通常他們電腦裡面也已經有中繼憑證了,因為他們換憑證一般都會連到憑證商,所以他自己是不會跳出異常的。 反正電腦只要看到一次就會存下來,所以就這樣囉

Post a comment