如何修复 Chrome 中的 ERR_SSL_OBSOLETE_VERSION 警告

已发表: 2022-08-28

您的网站访问者可能遇到的最令人担忧的错误之一是安全警告。 对于所有暴力攻击、恶意软件和拒绝服务攻击,互联网用户安全地浏览和购物至关重要。 如果您的站点显示 ERR_SSL_OBSOLETE_VERSION 警告,则访问者将无法访问您的站点,除非单击错误中的链接,该链接基本上告诉他们不应返回。

ERR_SSL_OBSOLETE_VERSION 警告

在这篇文章中,我们将讨论 ERR_SSL_OBSOLETE_VERSION 警告是什么以及您可以采取哪些步骤来修复它。 我们还将向您展示如何在两个最常见的 Web 服务器(Apache 和 NGINX)上本地测试这些修复程序。 让我们摇滚吧。

什么是 ERR_SSL_OBSOLETE_VERSION 警告?

ERR_SSL_OBSOLETE_VERSION 警告是您的站点访问者看到的错误消息,如果您的安全证书使用的是过时的版本,例如 TLS 1.0 或 1.1。 从 Chrome 72 发布开始,这些版本不再受支持。

什么是 TLS 与 SSL?

传输层安全性 (TLS) 是一种 Internet 安全协议,可以在 Internet 上进行身份验证和安全交付内容。 例如,它使诸如使用信用卡购物或在网站上使用敏感信息填写员工申请等事情变得安全。

安全套接字层 (SSL) 是一种已弃用的加密客户端和服务器之间连接的方法,已被新的 TLS 方法取代。 如今,TLS 和 SSL 之间的区别实际上只是术语问题。 即使 TLS 是实际使用的协议,大多数人仍然使用 SSL 一词。

如果您有 SSL,为什么还要关心 TLS?

如前所述,您的网站在技术上不再使用 SSL。 一般来说,现在所有的 SSL 证书实际上都是TLS 证书。 大多数托管服务提供商仍然使用 SSL 证书这一术语,因为它带来了恶名,但使用 TLS 是因为它的安全性和速度优势。

更新服务器的 TLS 版本如何修复 ERR_SSL_OBSOLETE_VERSION

2019 年,谷歌宣布由于存在安全漏洞,他们将停止在 Chrome 上使用 TLS 1.0 和 1.1。 自 2018 年 TLS 1.3 发布以来,Chrome 至少需要 1.2 版本才能在没有警告的情况下显示网站。 结果,所有使用以前版本 TLS 的网站都会收到一条难看的 ERR_SSL_OBSOLETE_VERSION 消息。 使用不受支持的 TLS 版本是危险的——不仅对您的网站而且对您的访问者也是如此。

大多数主流浏览器现在都支持 TLS 1.3(不包括 IE),并且它是自 2020 年以来 Google、Youtube 和 Netflix 等的默认传输安全性。 TLS 1.3 不仅提供更高级别的安全性,而且传输数据的速度也更快。 例如,TL​​S 1.3 将数据从访问者的浏览器传输到服务器所需的时间是 TLS 1.2 的一半。 此外,HTTPS、SMTP 和 POP3(用于电子邮件)等其他互联网协议已经在使用更新版本的 TLS。 即使您的站点没有收到警告,您也应该确保您的站点至少运行 TLS 1.2 版。 您网站的安全性取决于它。

如何在 Chrome 中修复 ERR_SSL_OBSOLETE_VERSION

如果您在尝试访问您的网站时已经在 Chrome 中看到此错误,则您的网站很可能运行的是过时的 TLS 版本。 解决此问题将需要各种不同的方法,这些方法最终取决于您的特定托管服务提供商。 但是,一个很好的起点是验证您的站点正在运行的 TLS 版本。

如何查找您的站点正在运行的 TLS 版本

您可以使用开发工具和键盘快捷键在 Chrome 中访问此信息。 按Command+Option+C键(在 Mac 上)或Control+Shift+C (在 Windows 和 Linux 上)。 接下来,单击安全选项卡。 屏幕将弹出并显示在您的站点上运行的 TLS 版本。

ERR_SSL_OBSOLETE_VERSION 检查器

如何查找您的网站主机/服务器正在运行的 TLS 版本

在联系您的主机或对您的网络主机的文件进行任何更改之前,最好检查一下您的主机服务器是否支持 TLS 1.2 或 1.3。 您可以通过访问 Geekflare 的 TLS 检查器来完成此操作。 输入您的主机的 URL,然后单击提交。 当结果出现时,向下滚动直到您看到已安装的协议。 寻找 TLS 1.2 和 1.3。 如果它们受支持,您会在每个旁边看到是。

TLS 测试

联系或更新您的托管服务提供商

一旦您确认您的站点和/或服务器正在运行过时的 TLS 版本,ERR_SSL_OBSOLETE_VERSION 错误的最简单解决方案是联系您的托管服务提供商以确定您的 TLS 版本是否可以升级。 从 TLS 1.0 或 1.1 切换到 TLS 1.2+ 可以解决您的问题。 如果这不是一个选项,那么是时候开始为您的网站研究新主机了。

我们对几家顶级托管服务提供商进行了测试,以测试他们的服务器运行 TLS 1.3 的能力。 Siteground、WP Engine、Pressable、Flywheel、Bluehost 和 Cloudways 都支持它。 因此,如果您使用这些提供商中的任何一个进行托管,您可能不会看到 ERR_SSL_OBSOLETE_VERSION 错误。 但是,我们应该注意,仅仅因为托管服务提供商可能支持最新的 TLS 版本,这并不意味着他们实际上正在运行它。 一些网络主机默认仍然使用 1.1,这不是很好。 这就是为什么检查您的站点上当前安装的版本很重要的原因。

在本地服务器上测试 ERR_SSL_OBSOLETE_VERSION 错误的修复

如果您想验证更新 TLS 版本是否会修复您网站的 ERR_SSL_OBSOLETE_VERSION 错误,您始终可以使用本地服务器对其进行测试。

如果您正在运行 WordPress,您的托管服务提供商很可能使用 Apache 或 NGINX 网络服务器。 出于本教程的目的,我们将使用本地服务器和 MAMP Pro 在 Apache 和 NGINX 上编辑 SSLProtocol 文件以禁用 TLS 1.0 和 1.1。 接下来,我们将启用对 TLS 1.2 和 1.3 的支持。 如果您使用的是 Windows 机器,您可以跟随我们使用 WAMP 完成相同的任务。

修复 ERR_SSL_OBSOLETE_VERSION 警告 MAMP Pro

我们想重申,您与您的主机确认他们支持 TLS 1.2 或 1.3。 在没有适当支持的情况下更改您的 SSLProtocols 将导致破坏您的 SSL 证书。

如何使用 Mamp Pro 在 Apache 中更新 TSL 版本

如果您在本教程中使用 MAMP Pro,我们假设您已经熟悉如何创建 WordPress 站点和安装 SSL。 如果您需要有关如何执行此操作的指导,请查看我们的 MAMP Pro WordPress 用户终极指南。

如何在 Apache 中禁用 TLS 1.0 和 1.1

为了在 Apache 中禁用 TLS 1.0 和 1.1,您需要编辑包含 Web 服务器的 SSLProtocol 的配置文件。 根据您使用的平台,此文件可能位于不同的位置。

在默认的 Apache 位置上,它可能位于此处:
/usr/local/apache2/conf/extra/httpd-ssl.conf

如果您正在运行 Ubuntu/Debian 服务器,则可能会在此处找到该文件:
/etc/apache2/mods-enabled/ssl.conf

最后,如果您通过 MAMP Pro(就像我们一样)在 macOS 上运行本地服务器,您将在此处找到该文件:
/mamp/conf/apache/extra/httpd-ssl.conf

接下来,查找SSL 协议支持部分,该部分将包含几行代码。 这是 httpd-ssl.conf 文件的默认设置:

SSLProtocol 默认文件

要确定启用了哪些协议,请查看最后两行代码。

启用 TLS 1.0 和 1.1

我们需要告诉 Apache 只运行 TLS 1.2 或更高版本。 现在,所有版本都已启用。 要更改它,您需要将SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3更改为以下内容:

 SSLProtocol TLSv1.1 TLSv1.2

该文件现在应该如下所示:

没有 ERR_SSL_OBSOLETE_VERSION Apache

最后一步是重新启动服务器。 服务器重新启动后,在隐身窗口中打开您的网站。 ERR_SSL_OBSOLETE_VERSION 警告应该消失了。 打开您的站点并使用开发工具查看您的安全设置。

TLS 1.2 测试站点

如何使用 Mamp Pro 在 NGINX 中更新 TLS 版本

要更新 NGINX Web 服务器上的 SSLProtocol,您需要找到站点的配置文件。 它也可以位于主要的 NGINX 配置文件中,就像在 MAMP Pro 中一样。 要使用 MAMP 编辑文件,请导航到mamp/conf/nginx/nginx.conf 。 使用 HTML/文本编辑器打开文件。 对于本教程,我们使用的是 BBedit,但任何编辑器都可以。 如果您不使用 MAMP Pro,则 nginx.conf 文件通常位于/etc/nginx/nginx.conf中。

滚动到底部,直到看到以ssl_protocols开头的行。 如果您启用了所有 TLS 版本,您的文件将如下所示:

默认 NGINX 文件

如您所见,启用了 TLS 1.0、1.1 和 1.2,但不支持 1.3。 要改变它,你需要改变ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 到以下:

NGINX 编辑这一行

ssl_protocols TLSv1.2 TLSv1.3;

该文件现在应该如下所示:

更正了 NGINX 文件

您的服务器现在应该只使用 TLS 版本 1.2 和 1.3。 要确认,请重新启动您的服务器并在 Chrome 中打开您的网站。 使用开发检查器工具检查您的设置。 如前所述,您可以通过按Command+Option+C键(在 Mac 上)或Control+Shift+C (在 Windows 和 Linux 上),然后单击安全选项卡来执行此操作。

我们想提一下,您的默认配置中的设置可能会被单个域的服务器块覆盖。 如果您已经实施了我们的修复并且仍然收到 ERR_SSL_OBSOLETE_VERSION 警告,这可能是根本原因。

收拾东西

随着安全问题的快速增长,让您的站点与最新版本的 TLS 保持同步非常重要。 我们知道浏览器错误可能是一种令人沮丧的体验,尤其是当您不知道如何修复它们时。 您可以使用 Chrome 开发工具和 Geekflare 的 TLS 检查器等工具来确认问题。 但是,不幸的是,问题的解决方案是更新 TLS 版本,这只能在服务器级别完成。 因此,最好的办法是联系您的主机,或者,如果需要,升级您的主机提供商以确保他们支持新的 TLS 版本。 在 Apache 和 NGINX Web 服务器上本地测试站点上的新版本 TLS 也可能会有所帮助。 这将有助于确保您的访问者在您进行这些更改时不会遇到难看的 ERR_SSL_OBSOLETE_VERSION 警告。

你有没有在 Chrome 中遇到过 ERR_SSL_OBSOLETE_VERSION 警告错误? 如果是这样,请在下面的评论部分中发出声音。

特色图片 valeriya kozoriz,Funtap / shutterstock.com