問題
網站更換憑證後在電腦瀏覽器上可正常瀏覽,但手機端卻出現憑證無效的錯誤。
|
|
原因:缺乏中繼憑證
👀 以下截自 【茶包射手日記】網站憑證無效案例分析
這篇問題的確單純就是沒裝中繼 CA 憑證,而這問題用PC瀏覽器是測不出來的,因為PC瀏覽器在缺少中繼憑證時,會從憑證的擴充欄位>授權資訊存取>憑證授權單位簽發者中的網址,自動下載中繼憑證,所以不會有問題。但PC瀏覽器以外的client如手機版瀏覽器、curl、寫程式連線等都沒有這個自動下載。
另外 SSLLab 其實會指出這個問題,在Additional Certificates (if supplied)區塊就會列出server提供了哪些憑證,如果有缺少中繼憑證問題也會顯示Chain issues: Incomplete
簡單來說就是:
- 伺服器端沒提供中繼憑證,導致憑證無效。
- PC 上的瀏覽器因為會自動從憑證授權單位自動下載中繼憑證,所以不會有問題。
- 其他類型的 Client 沒有這個自動下載的機制,所以會有問題。
驗證問題
嘗試手動將中繼憑證加入手機中,確認可以正常瀏覽。
使用 What’s My Chain Cert 憑證設定檢查網站,比對兩個網址的設定,也確實異常的那個網站是有錯誤的。
解決方案
很簡單,伺服器端修正憑證設定即可。
補充案例
2023/05/30 App 下載離線圖資失敗,經查測後發現一樣是在瀏覽器上可正常連線,但是 App 無法連線。
使用 What’s My Chain Cert 憑證設定檢查網站 檢查,確認是 Misconfigured。
改用 SSLChecker 憑證設定檢查網站 ,更明確指出斷在哪裡。
伺服器端匯入中繼憑證後,使用 SSLShopper SSL Checker 檢查通過。
參考資料
- StackOverflow: Trust Anchor not found for Android SSL Connection
- 【茶包射手日記】網站憑證無效案例分析
- 中繼憑證設定遺失問題
- 【第2代通用憑證管理中心新舊中繼CA憑證差異說明】
- 什麼是中繼憑證