如何修复“SSL 握手失败”
为您的网站设置安全套接字层(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设备上,打开开始菜单并输入日期和时间设置。选择出现的选项,会弹出一个新窗口。启用自动设置时间,并确保您的时区正确:
![](https://pic3.zhimg.com/80/v2-33b2886dbef905405ee46061148773fa_720w.webp)
然后验证您此时的日期是否正确,然后尝试重新加载网站。
如果在本地设备上修复日期和时间不起作用,您可以继续尝试另一个修复方法:
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服务器测试等工具来执行此操作:
![](https://pic2.zhimg.com/80/v2-8adb7da4039cd728e439e465ce6176bd_720w.webp)
该服务将返回有关您网站的SSL证书的大量信息。如果证书过期,您将看到有效期的结束日期:
![](https://pic3.zhimg.com/80/v2-329d32cbb544e6f44b8e1eb521df7ba6_720w.webp)
在这种情况下,您需要在您的网站上重新颁发并安装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原创翻译整理,转载请注明来源