我如何知道為什麼 Chrome 不喜歡遠端 SSL 握手?

我如何知道為什麼 Chrome 不喜歡遠端 SSL 握手?

對於一個我們確實需要能夠與之溝通的特定網站,我們開始收到常見的 SSL 握手錯誤:

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

不過,我已經確認這不是 SSLv3 問題。該網站符合 PCI 標準,因此使用最新的 SSL 設定。openssl報告如下:

SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-SHA256

最近所做的唯一更改是從其密碼套件中刪除了幾個密碼;他們專門在伺服器端禁用了TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA和。TLS_RSA_WITH_AES_128_CBC_SHA

我不明白的是,為什麼 Chrome 會抱怨這個特定的協定版本和密碼套件;對我來說這似乎很好。該網站在最近的 IE 中開啟沒有任何問題(並且 IE 頁面資訊與opensslios 報告相符),但在 Chrome 和 Firefox 中失敗。

有沒有辦法找出 Chrome 的協定/密碼設置它是從伺服器獲取的,或者為什麼它認為它們無效?

答案1

有沒有辦法找出 Chrome 認為它從伺服器獲得的協定/密碼設置

TLS 不是這樣運作的。在 TLS 中,客戶端開始握手並包含它願意從伺服器接受的所有密碼。如果伺服器沒有發現與自己的密碼有任何重疊,那麼在最好的情況下,它會通知客戶端此特定問題,在最壞的情況下,只需關閉連線。

在您的情況下,您會收到 ERR_SSL_VERSION_OR_CIPHER_MISMATCH,這表示伺服器不支援客戶端提供的任何密碼。我不知道您在伺服器上配置了哪些密碼,但 SSLLabs 會向您顯示哪些密碼密碼由 Chrome 提供。 ECDHE-RSA-AES128-SHA256 (TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) 不是其中之一。

它可能適用於其他瀏覽器,因為這些瀏覽器向伺服器提供不同的密碼,即Windows 10 上的 IE 11支援這個特定的密碼,同時火狐瀏覽器不支援。 Chrome 和 Firefox 都提供了 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ,它已從伺服器的密碼集中刪除,因此它之前可以工作。

要解決此問題,您應該將伺服器設定為接受盡可能多的內容安全的密碼。看推薦配置在 Mozilla 維基百科上。

相關內容