- 錯誤型別:
- 安全相關錯誤
- 錯誤名稱:
- SSL握手错误
- 英文名稱:
- SSL Handshake Failed
- 錯誤描述:
- SSL握手失败或错误525意味着服务器和浏览器无法建立安全连接。这可能由于多种原因而发生。
如今為網站設定安全套接字層 (SSL) 證書非常簡單。您可以免費生成證書,許多託管服務提供商甚至會為您設定。但是,如果您沒有正確配置您的證書,您可能會遇到諸如“SSL握手失敗”之類的錯誤。
如果您遇到“SSL握手失敗”錯誤訊息並且對它的含義感到困惑,那麼您並不孤單。這是一個常見的錯誤,它本身並不能告訴你太多。雖然這可能是令人沮喪的體驗,但好訊息是您可以採取一些簡單的步驟來解決問題。
當您的瀏覽器和伺服器無法建立安全連線時,會出現“SSL握手失敗”錯誤。
在這篇文章中,我們將解釋什麼是SSL Handshake Failed錯誤以及導致它的原因。然後,我們將為您提供幾種可用於修復它的方法。
SSL握手簡介
在我們深入研究導致TLS或SSL握手失敗的原因之前,瞭解什麼是TLS/SSL握手會很有幫助。安全套接字層 (SSL)和傳輸層安全性 (TLS)是用於驗證伺服器和外部系統(如瀏覽器)之間的資料傳輸的協議。
需要SSL證書才能使用HTTPS保護您的網站。我們不會太深入地討論TLS與SSL之間的區別, 因為它是次要的。這些術語經常互換使用,因此為簡單起見,我們將使用“SSL”來指代兩者。
除此之外,SSL握手是建立HTTPS連線過程的第一步。為了驗證和建立連線,使用者的瀏覽器和網站的伺服器必須經過一系列檢查(握手),從而建立HTTPS連線引數。
讓我們解釋一下:客戶端(通常是瀏覽器)向伺服器傳送安全連線請求。傳送請求後,伺服器會向您的計算機傳送一個公鑰,並根據證書列表檢查該金鑰。然後,計算機使用從伺服器傳送的公鑰生成金鑰並對其進行加密。
長話短說,沒有SSL握手,就不會建立安全連線。這會帶來重大的安全風險。此外,該過程涉及許多活動部件。
這意味著有很多不同的機會出現問題並導致握手失敗,甚至導致“您的連線不是私密連線”錯誤,從而導致訪問者離開。
您可能知道,SSL證書可以驗證您網站的“身份”。它使用瀏覽器檢查的加密金鑰來確保證書有效。建立連線後,您的瀏覽器可以解密伺服器傳送的內容。
這個過程稱為“握手”。以下是它更詳細的工作原理:
- 您訪問具有SSL證書的網站,並且您的瀏覽器傳送資料請求。
- 伺服器向瀏覽器傳送一個加密的公鑰。
- 您的瀏覽器檢查該金鑰並將其加密金鑰傳送回伺服器。
- 伺服器解密金鑰並將加密內容傳送回您的瀏覽器。
- 您的瀏覽器解密內容(從而完成握手)。
所有這一切都在幾秒鐘內發生。SSL證書和HTTPS協議使您的網站能夠安全地傳輸資料,而不會對效能產生負面影響。這使得SSL證書對任何網站都至關重要。但是,就像您網站的任何元素一樣,它有時會產生獨特的問題。
瞭解導致SSL握手失敗的原因
SSL握手失敗或錯誤525意味著伺服器和瀏覽器無法建立安全連線。這可能由於多種原因而發生。
通常,錯誤525表示使用Cloudflare的域與源Web伺服器之間的SSL握手失敗。
“SSL握手失敗”錯誤準確地告訴您問題是什麼。當您的瀏覽器無法與具有SSL證書的網站建立連線時,它會顯示:
在這個來自使用Cloudflare的網站的示例中,您可以看到“SSL握手失敗”錯誤對應於“525”程式碼。因此,錯誤可能源於伺服器端和客戶端的問題。
但是,瞭解SSL錯誤可能發生在客戶端或伺服器端也很重要。客戶端SSL錯誤的常見原因包括:
- 客戶端裝置上的錯誤日期或時間。
- 瀏覽器配置錯誤。
- 被第三方攔截的連線。
一些伺服器端原因包括:
- 密碼套件不匹配。
- 伺服器不支援的客戶端使用的協議。
- 不完整、無效或過期的證書。
通常,如果SSL握手失敗,問題可能是由於網站或伺服器及其SSL配置有問題。
該列表包括本地問題,與您網站的伺服器相關問題,一個特定於第三方服務的問題。在接下來的部分中,我們將探討如何解決每個問題。
如何修復SSL握手失敗錯誤
“SSL握手失敗”錯誤背後有幾個潛在原因。因此,當涉及到如何修復它時,沒有簡單的答案。
幸運的是,您可以使用一些方法來開始探索潛在問題並一一解決。讓我們看一下可用於嘗試修復SSL Handshake Failed錯誤的五種策略。
1. 更新您的系統日期和時間
當您的瀏覽器嘗試建立SSL握手時,它會根據您計算機的日期和時間驗證證書。它這樣做是為了驗證SSL證書是否仍然有效。
如果您本地裝置的日期和時間關閉,則可能會導致驗證過程中出現錯誤(即沒有握手)。幸運的是,這是一個簡單修復的問題。
在Windows裝置上,開啟開始 選單並輸入日期和時間設定。選擇出現的選項,會彈出一個新視窗。啟用設定自動設定時間,並確保您的時區正確:
驗證您的日期現在是否正確,然後嘗試重新載入網站。
以下是在其他作業系統 (OS) 上修復日期和時間的方法:
如果在本地裝置上修復日期和時間不起作用,您可以繼續進行下一個修復。
2. 檢查您的SSL證書是否有效
SSL證書上標有到期日期,以幫助確保其驗證資訊保持準確。通常,這些證書的有效期為六個月至兩年。
如果SSL證書被吊銷或過期,瀏覽器將檢測到這一點並且無法完成SSL握手。如果您在網站上安裝SSL證書已經超過一年左右,那麼可能是時候重新頒發它了。
要檢視SSL證書的狀態,您可以使用SSL證書檢查工具 ,例如Qualys提供的工具:
Qualys網站上的SSL伺服器測試工具
該工具既可靠又免費使用。您需要做的就是在Hostname欄位中輸入您的域名 ,然後單擊Submit。一旦檢查器完成對您網站的SSL配置的分析,它將為您提供一些結果:
Qualys SSL檢查工具的結果頁面
在此頁面上,您可以檢視您的證書是否仍然有效,並檢視它是否因任何原因被吊銷。
在任何一種情況下,更新您的SSL證書都應該可以解決握手錯誤(這對於確保您的網站和WooCommerce商店的安全至關重要)。
3. 為您的瀏覽器配置最新的SSL/TLS協議支援
有時,確定問題根本原因的最佳方法是消除過程。正如我們前面提到的,SSL握手失敗通常是由於瀏覽器配置錯誤而發生的。
確定特定瀏覽器是否存在問題的最快方法是嘗試切換到其他瀏覽器。這至少可以幫助縮小問題範圍。您也可以嘗試禁用任何外掛並將瀏覽器重置為預設設定。
另一個潛在的與瀏覽器相關的問題是協議不匹配。例如,如果伺服器僅支援TLS 1.2,但瀏覽器僅配置為TLS 1.0或TLS 1.1,則沒有相互支援的協議可用。這將不可避免地導致SSL握手失敗。
如何檢查此問題是否發生取決於您使用的瀏覽器。作為一個例子,我們將看看這個過程在Chrome中是如何工作的。首先,開啟瀏覽器並轉到設定 > 高階。這將擴充套件許多選單選項。
在“系統 ”部分下,單擊“開啟計算機的代理設定”:
Google Chrome中的系統設定頁面
這將開啟一個新視窗。接下來,選擇高階選項卡。在安全部分下,檢查是否選中了使用TLS 1.2旁邊的框 。如果沒有,請檢查該選項:
Windows中的Internet屬性高階設定
還建議您取消選中SSL 2.0和SSL 3.0的覈取方塊。
這同樣適用於TLS 1.0和TLS 1.1 ,因為它們正在被淘汰。完成後,單擊“ 確定” 按鈕,然後檢查握手錯誤是否已解決。
請注意,如果您使用的是Apple Safari或Mac OS,則沒有啟用或禁用SSL協議的選項。預設情況下會自動啟用TLS 1.2。如果您使用的是Linux,您可以參考Red Hat guide on TLS hardening。
4. 驗證您的伺服器是否正確配置為支援SNI
SSL 握手失敗也可能是由不正確的伺服器名稱指示 (SNI) 配置引起的。SNI使Web伺服器能夠為一個IP地址安全地託管多個TLS證書。
伺服器上的每個網站都有自己的證書。但是,如果伺服器未啟用SNI,則可能導致SSL握手失敗,因為伺服器可能不知道要提供哪個證書。
有幾種方法可以檢查網站是否需要SNI。一種選擇是使用我們在上一節中討論過的Qualys的SSL伺服器測試。輸入您網站的域名,然後單擊提交按鈕。
在結果頁面上,查詢顯示“This site works only in browsers with SNI support”的訊息:
Qualys SSL檢查器工具的摘要結果頁面
另一種檢測伺服器是否使用SNI的方法是瀏覽“ClientHello”訊息中的伺服器名稱。這是一個技術性更強的過程,但它可以提供很多資訊。
它涉及檢查“server_name”欄位的擴充套件hello標頭,以檢視是否提供了正確的證書。
如果您熟悉使用OpenSSL工具包 和Wireshark等工具,您可能會發現此方法更可取。您可以使用openssl s_client
或不使用該-servername
選項:
# without SNI $ openssl s_client -connect host:port # use SNI $ openssl s_client -connect host:port -servername host
如果您獲得了兩個同名的不同證書,則意味著SNI受支援且配置正確。
但是,如果返回的證書中的輸出不同,或者沒有SNI的呼叫無法建立SSL連線,則表明需要SNI但未正確配置。解決此問題可能需要切換到專用IP地址。
5. 確保密碼套件匹配
如果您仍然無法確定SSL握手失敗的原因,則可能是由於密碼套件不匹配。如果您不熟悉該術語,“密碼套件”是指一組演算法,包括用於金鑰交換、批量加密和訊息身份驗證程式碼的演算法,可用於保護SSL和TLS網路連線。
如果伺服器使用的密碼套件不支援或不匹配Cloudflare使用的密碼套件,則可能導致“SSL握手失敗”錯誤。
在確定是否存在密碼套件不匹配時,Qualys的SSL伺服器測試再次證明是一個有用的工具。
當您輸入您的域並單擊提交時,您將看到一個摘要分析頁面。您可以在“Cipher Suites ”部分下找到密碼資訊:
Qualys SSL報告中的密碼套件部分
您可以使用此頁面來發現伺服器支援的密碼和協議。您需要注意任何顯示“弱”狀態的內容。此外,本節還詳細介紹了密碼套件的具體演算法。
要更正此問題,您可以使用您的瀏覽器工具的Qualys SSL/TLS功能將結果與您的瀏覽器支援的內容進行比較。有關密碼套件的更多資訊和指導,我們還建議檢視ComodoSSLStore指南。
小結
最令人困惑但最常見的SSL相關問題型別之一是“SSL握手失敗”錯誤。處理此錯誤可能會帶來壓力,因為它有許多潛在原因,包括客戶端和伺服器端問題。
但是,您可以使用一些可靠的解決方案來識別問題並加以解決。您可以使用以下五種方法來修復SSL Handshake Failed錯誤:
- 更新您的系統日期和時間。
- 檢查您的SSL證書是否有效(必要時重新頒發)。
- 配置您的瀏覽器以支援最新的TLS/SSL版本。
- 驗證您的伺服器是否已正確配置為支援SNI。
- 確保密碼套件匹配。
評論留言