與遠端伺服器的 SSL 握手期間出錯將阻止客戶端與伺服器通信,這將導致線上服務或 Web 應用程式無法存取。
如果您在線上託管服務,這是一個主要問題,因此盡快解決該問題至關重要。在本指南中,我們將向您展示解決此問題的幾種方法。
與遠端伺服器進行 SSL 握手時出現什麼錯誤?
- 當用戶端無法與伺服器建立安全連線時,會出現此錯誤訊息,從而出現握手錯誤。
- 導致此問題的最常見原因是伺服器的 SSL 設定以及過期的憑證。
- 如果伺服器和用戶端不使用相同的協議,您可能會收到此錯誤。
如何修復與遠端伺服器 SSL 握手期間的錯誤?
- 強制代理將壓縮設為無。如果代理商不能使用 gzip,這會有所幫助。
- 配置應用程式以在內部使用 HTTP。這僅適用於您使用本機伺服器進行測試的情況。
1.更改Apache設定
- 打開命令列工具並存取伺服器。
- 現在執行以下命令:
sudo nano /etc/apache2/sites-available/your-site.conf
- 確保設定檔中包含以下行:
SSLProxyEngine onSSLProxyVerify noneSSLProxyCheckPeerCN offSSLProxyCheckPeerName offSSLProxyCheckPeerExpire off
- 儲存更改。
2. 檢查允許的協議
- 開啟命令列並執行以下命令: sudo nano /etc/apache2/sites-available/your-site.conf
- 接下來,配置該值如下:
SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1
- 儲存更改。
- 如果您仍然遇到問題,請確保 SSLProxyCipherSuite 的值設定正確。
3.再次產生自簽名證書
- 再次啟動終端。
- 連接到伺服器後,執行以下命令:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl.key -out ssl.crt
- 這將為您的伺服器產生新憑證。
如果您之前已在伺服器上產生了自簽名證書,則此方法適用。
4.修改rproxy.conf文件
- 打開終端機並執行以下命令:
nano rproxy.conf
- 確保新增以下行:
SetEnv proxy-sendchunked 1
- 儲存更改。
防止 SSL 握手時發生錯誤的提示
- 確保伺服器提供的 SSL 憑證有效,並檢查鏈中的中間憑證。嘗試使用受信任的憑證授權單位所核發的憑證。
- 確保憑證的公用名稱和使用者備用名稱與主機名稱相符。
- 檢查協定並確保客戶端和伺服器都使用相容的協定版本。另外,檢查伺服器和客戶端 SSL/TLS 配置。
- 始終保持 SSL 庫最新。
- 確保您的防火牆沒有阻止用於 SSL/TLS 的連接埠 443。
這些步驟應該可以幫助您修復代理伺服器無法處理請求原因:與遠端伺服器進行 SSL 握手期間發生錯誤。在大多數情況下,問題與 Apache 配置有關,您需要相應地調整伺服器設定。
如果您不修復此錯誤,您將在瀏覽器中收到Handshake failed returned SSL error code 1或SSL_error_handshake_failure_alert訊息。由於 SSL 的問題,許多人報告Chrome 表示即使憑證有效也不安全,但這很容易修復。
您設法解決這個問題了嗎?如果是這樣,請與我們分享哪種解決方案適合您。
發佈留言