修复:与远程服务器进行 SSL 握手期间出错

error during ssl handshake with remote server

与远程服务器的 SSL 握手期间出错将阻止客户端与服务器通信,这将导致在线服务或 Web 应用程序无法访问。

如果您在线托管服务,这是一个主要问题,因此尽快解决该问题至关重要。在本指南中,我们将向您展示解决此问题的几种方法。

与远程服务器进行 SSL 握手时出现什么错误?

  • 当客户端无法与服务器建立安全连接,从而出现握手错误时,就会出现此错误消息。
  • 导致此问题的最常见原因是服务器的 SSL 设置以及过期的证书。
  • 如果服务器和客户端不使用相同的协议,您可能会收到此错误。

如何修复与远程服务器 SSL 握手期间的错误?

  • 强制代理将压缩设置为无。如果代理无法使用 gzip,这会有所帮助。
  • 配置应用程序以在内部使用 HTTP。这仅适用于您使用本地服务器进行测试的情况。

1.更改Apache设置

  1. 打开命令行工具并访问服务器。
  2. 现在运行以下命令: sudo nano /etc/apache2/sites-available/your-site.conf
  3. 确保配置文件中包含以下行:SSLProxyEngine onSSLProxyVerify noneSSLProxyCheckPeerCN offSSLProxyCheckPeerName offSSLProxyCheckPeerExpire off
  4. 保存更改。

2. 检查允许的协议

  1. 打开命令行并运行以下命令: sudo nano /etc/apache2/sites-available/your-site.conf
  2. 接下来,配置该值如下: SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1
  3. 保存更改。
  4. 如果您仍然遇到问题,请确保 SSLProxyCipherSuite 的值设置正确。

3.再次生成自签名证书

  1. 再次启动终端。
  2. 连接到服务器后,运行以下命令: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ssl.key -out ssl.crt
  3. 这将为您的服务器生成新证书。

如果您之前已在服务器上生成了自签名证书,则此方法适用。

4、修改rproxy.conf文件

  1. 打开终端并运行以下命令: nano rproxy.conf
  2. 确保添加以下行: SetEnv proxy-sendchunked 1
  3. 保存更改。

防止 SSL 握手期间发生错误的提示

  • 确保服务器提供的 SSL 证书有效,并检查链中的中间证书。尝试使用受信任的证书颁发机构颁发的证书。
  • 确保证书的公用名和使用者备用名与主机名匹配。
  • 检查协议并确保客户端和服务器都使用兼容的协议版本。另外,检查服务器和客户端 SSL/TLS 配置。
  • 始终保持 SSL 库最新。
  • 确保您的防火墙没有阻止用于 SSL/TLS 的端口 443。

这些步骤应该可以帮助您修复代理服务器无法处理请求原因:与远程服务器进行 SSL 握手期间出现错误。在大多数情况下,问题与 Apache 配置有关,您需要相应地调整服务器设置。

In case you don’t fix this error, you’ll get Handshake failed returned SSL error code 1 or SSL_error_handshake_failure_alert message in your browser. Due to problems with SSL, many reported that Chrome says not secure even if the certificate is valid, but that can be easily fixed.

Did you manage to fix this issue? If so, share with us what solution worked for you.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注