
對於一個我們確實需要能夠與之溝通的特定網站,我們開始收到常見的 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 頁面資訊與openssl
ios 報告相符),但在 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 維基百科上。