如何修复“SSL 握手失败”

时间:2022-10-11 19:01:45

为您的网站设置安全套接字层(SSL)证书从来都不是简单的事。您可以免费生成证书,也可以由托管服务提供商给您安装证书,但是,如果您没有正确地配置您的证书,您可能会遇到诸如“SSL握手失败”等问题。

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

跟我们一起去看看吧!

什么叫SSL握手呢?

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

这个过程可以称为“握手”,下面是具体的工作原理:

当您访问安装有SSL证书的网站时,您的浏览器会发送一个数据请求:

服务器就会向浏览器发送一个加密的公钥。

您的浏览器检查该公钥后返回自己的加密密钥给服务器

服务器解密该密钥后将加密内容返回给您的浏览器

您的浏览器解密加密的内容,就完成了握手的过程

完成这一过程就几秒钟的时间。SSL证书和HTTPS协议能够让您的网站更安全地传输数据,而不会对性能产生负面影响。这使得SSL证书对任何网站都至关重要。但是,就像您网站的任何元素一样,它有时也会产生其他的问题

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

“SSL握手失败”会准确地告诉您问题是什么。当您的浏览器无法与具有SSL证书的网站建立连接时,它会显示:Error 525 Ray ID:594f9ac978edc924.2020-05-17 19:04:31 UTC SSL handshake failed

在使用CloudFlare的网站这个例子中,您可以看到“SSL握手失败”对应“525”这个代码。因此,失败的原因也可能是服务器端和客户端的问题导致的。

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

您本地设备设置的日期或时间有误

浏览器不支持最新的SSL协议

您的SSL证书是无效的

您的服务器名称标识(SNI)配置存在问题

您的内容分发网络(CDN)存在问题,例如Cloudflare

以上所列出的原因包括两个本地问题,两个与您网站的服务器相关,一个与第三方服务相关。在接下来的部分,将探讨如何解决上述的问题

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

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

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

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

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

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

如何修复“SSL 握手失败”


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

如果在本地设备上修复日期和时间不起作用,您可以继续尝试另一个修复方法:

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

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

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

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

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

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

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

3.确保您的SSL证书有效

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

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

即便如此,通过检查您不确定证书的到期日期也无妨。您可以使用SSL服务器测试等工具来执行此操作:


如何修复“SSL 握手失败”

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

如何修复“SSL 握手失败”


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

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

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

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

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

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

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

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

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

总结:

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

您可能需要执行以下操作来修复“SSL握手失败”:

更新本地设备的日期和时间。

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

确保您的SSL证书有效

检查服务器的SNI配置。

暂停Cloudflare以测试您的SSL证书

原文来源:WordPress 由沃通WoTrus原创翻译整理,转载请注明来源