我透過防火牆連接到特定的Web 伺服器,但是當我這樣做時,防火牆會警告根憑證已過期,當我繞過防火牆時,所有瀏覽器都看不到憑證有問題,當我檢查鏈時,所有證書都正常。
我仔細研究了一下,發現瀏覽器實際上是用 Windows 憑證儲存中未過期的憑證取代伺服器發送的過期憑證。 (伺服器發送四個憑證鏈:根憑證、中間憑證 1、中間憑證 2 和伺服器憑證。中間憑證 1 已過期。它被瀏覽器/作業系統替換,成為瀏覽器的根憑證。它是 GlobalSign 憑證鏈。 )
顯然,它們具有相同的友好名稱,並且可能具有其他相似的屬性(當然公鑰是相同的)。由於 IE/Chrome 也在做同樣的事情,它看起來很像瀏覽器使用的一些 Windows 功能。
為什麼會發生這種情況?如何更換證書?
答案1
答:Windows 忽略網頁伺服器提供的 CA 憑證。它只會根據作業系統的 CA 證書儲存中儲存的相應 CA 證書檢查 Web 伺服器的證書,這些證書受到作業系統的信任。如果頒發 Web 伺服器憑證的 CA 憑證鏈尚未儲存在作業系統的 CA 憑證儲存中,Windows 也有其方法來檢索該鏈。有關此內容的更多詳細資訊可以在這裡找到:
有些防火牆會檢查網路伺服器發送的 CA 證書,如果其中一個證書過期,就會阻止存取。與 Windows 等常規作業系統相比,防火牆在憑證方面的行為通常有所不同。
我們也了解到,CA 憑證可以使用不同的序號和有效期限重新頒發。該憑證將具有相同的“友好名稱”和密鑰對。
在這種特定情況下,網路伺服器正在傳送屬於該鏈的一個 CA 憑證的舊版本,防火牆會偵測到該憑證已過期並阻止對網站的存取。當防火牆被繞過時,可以存取該站點,這是因為 Windows 具有新版本的 CA 憑證並根據它檢查 Web 伺服器的憑證。