如何修复解决“SSL握手失败”报错

ssl-handshake

如今为网站设置安全套接字层 (SSL) 证书非常简单。您可以免费生成证书,许多托管服务提供商甚至会为您设置。但是,如果您没有正确配置您的证书,您可能会遇到诸如“SSL握手失败”之类的错误。

当您的浏览器和服务器无法建立安全连接时,会出现“SSL握手失败”错误。本文将解释什么是 SSL 握手,以及如果您未能建立握手,该怎么办。

什么是SSL握手?

您可能知道,SSL证书可以验证您网站的“身份”。它使用浏览器检查的加密密钥来确保证书有效。建立连接后,您的浏览器可以解密服务器发送的内容。

这个过程称为“握手”。以下是它更详细的工作原理:

  1. 您访问具有SSL证书的网站,并且您的浏览器发送数据请求。
  2. 服务器向浏览器发送一个加密的公钥。
  3. 您的浏览器检查该密钥并将其加密密钥发送回服务器。
  4. 服务器解密密钥并将加密内容发送回您的浏览器。
  5. 您的浏览器解密内容(从而完成握手)。

所有这一切都在几秒钟内发生。SSL证书和HTTPS协议使您的网站能够安全地传输数据,而不会对性能产生负面影响。这使得 SSL 证书对任何网站都至关重要。但是,就像您网站的任何元素一样,它有时会产生独特的问题。

导致“SSL握手失败”错误的原因

“SSL握手失败”错误准确地告诉您问题是什么。当您的浏览器无法与具有SSL证书的网站建立连接时,它会显示:

ssl-handshake-failed

在这个来自使用Cloudflare的网站的示例中,您可以看到“SSL握手失败”错误对应于“525”代码。因此,错误可能源于服务器端和客户端的问题。

“SSL 握手失败”错误的最常见原因包括:

  1. 您本地设备的日期或时间有误
  2. 浏览器不支持最新的SSL协议
  3. 您的SSL证书无效
  4. 您的服务器名称标识 (SNI)配置存在问题
  5. 你的内容分发网络(CDN) 存在一些问题,如CloudFlare的

该列表包括两个本地问题,两个与您网站的服务器相关,一个特定于第三方服务。在接下来的部分中,我们将探讨如何解决每个问题。

如何修复“SSL握手失败”错误(5 种方法)

在这里,我们将首先向您展示如何修复可能导致“SSL握手失败”错误的客户端问题。这些解决方案非常简单。但是,如果它们不起作用,我们将继续提供您可以尝试的更多技术解决方案。

1. 更新您本地设备的日期和时间

当您的浏览器尝试建立SSL握手时,它会根据您计算机的日期和时间验证证书。它这样做是为了验证SSL证书是否仍然有效。

如果您本地设备的日期和时间关闭,则可能会导致验证过程中出现错误(即没有握手)。幸运的是,这是一个简单修复的问题。

在Windows设备上,打开开始 菜单并输入日期和时间设置。选择出现的选项,会弹出一个新窗口。启用设置自动设置时间,并确保您的时区正确:

set-time-automatically

验证您的日期现在是否正确,然后尝试重新加载网站。

以下是在其他操作系统 (OS) 上修复日期和时间的方法:

如果在本地设备上修复日期和时间不起作用,您可以继续进行下一个修复。

2. 确保您的浏览器支持最新的TLS协议

在某些情况下,由于浏览器问题,您可能会遇到“SSL握手失败”错误。最常见的问题是您的浏览器不支持您的证书使用的传输层安全 (TLS)协议。

简单来说,SSL和TLS都是认证协议,你的证书可以使用其中之一。现代浏览器支持这两种协议,但它们的旧版本可能不支持。

确定您的浏览器是否导致问题的最简单方法是使用另一个浏览器。如果在其他浏览器中没有出现“SSL握手失败”错误,则可能是原始浏览器的问题。

要在Windows中解决此问题,请打开“开始” 菜单并键入Internet 选项。选择出现的选项并转到高级 选项卡。向下滚动设置列表,直到找到与SSL和TLS设置对应的选项:

ssl-tls

理想情况下,您应该取消选中SSL 3和2的复选框(如果您看到这些选项)。您只需选中TLS 1、1.1 和 1.2的复选框。

然后保存对Internet选项的更改并尝试重新访问该网站。请注意,如果您使用的是macOS 或 iOS,则默认情况下应启用TLS 1.2。

3. 确保您的SSL 证书有效

SSL证书有到期日期。这是一个内置功能,可强制您在某个时候更新证书,并验证您的域所有权。

如果您的SSL证书过期,您的浏览器将无法建立握手。根据您的SSL证书提供商是谁,您很可能会在它到期之前收到通知,以便您可以续订。

即便如此,检查您是否不确定证书的到期日期也无妨。您可以使用诸如SSL Server Test之类的工具来执行此操作:

ssl-server-test

该服务将返回有关您网站的SSL证书的大量信息。如果证书已过期,您将看到其有效期何时结束:

certificate-details

在这种情况下,您需要在您的网站上重新颁发并安装SSL证书。根据您的托管服务提供商是谁,他们可能能够帮助完成该过程。

4. 检查您服务器的服务器名称标识 (SNI) 配置

如果您使用共享服务器来托管您的网站,您可能会遇到多个SSL证书的问题。托管服务提供商使用正确的服务器名称标识 (SNI)配置来确保当访问者尝试访问您的站点时,他们获得正确的 SSL 证书(而不是来自其他财产的证书)。

一般来说,大多数信誉良好的托管服务提供商不会对SNI配置提出任何问题。此外,如果您不使用共享服务器,则可以继续进行下一个修复。

如果您想100%确定您的托管服务提供商没有出现任何SNI配置问题,您可以联系其支持寻求帮助。在共享服务器上,您将无法直接访问此配置。如果事实证明这是问题所在,您可能需要考虑升级或者更换到支持更强大的服务器计划。

5. 暂停Cloudflare以测试您的SSL证书

如果您使用Cloudflare,“SSL握手失败”错误可能是由于其与您网站的连接出现问题。测试此功能的最简单方法是暂时禁用它。

幸运的是,Cloudflare提供了“暂停”功能,您可以随时使用它来禁用该服务。执行此操作后,我们建议您先清除浏览器的缓存,然后再尝试再次访问您的网站。

如果SSL握手错误消失,您需要联系Cloudflare以查看可能是什么问题。在您等待响应时,请禁用CDN,以便其他用户也可以访问您的网站。另一方面,如果SSL错误仍然存​​在,这意味着它可能是由于您的服务器配置错误(见上文)。

小结

“SSL握手失败”错误相对容易修复,只要您知道其潜在原因是什么。该错误可能是由于您的本地设备设置、服务器配置或CDN存在问题。

以下是修复“SSL握手失败”错误可能需要执行的操作:

  1. 更新本地设备的日期和时间。
  2. 确保您的浏览器支持最新的TLS协议。
  3. 确保您的SSL证书有效。
  4. 检查服务器的SNI配置。
  5. 暂停Cloudflare以测试您的SSL证书。

标签

评论交流

闪电博沟通群

扫码加入QQ交流群 695891297