错误类型:
安全相关错误
错误名称:
ERR SSL版本或密码不匹配
英文名称:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
错误描述:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误通常发生在较旧的操作系统或浏览器上。
错误变体:
SSL_ERROR_NO_CYPHER_OVERLAP

如何修复ERR_SSL_VERSION_OR_CIPHER_MISMATCH报错

当您访问通过HTTPS运行的网站时,浏览器和Web服务器之间会执行一系列步骤,以确保证书和SSL/TLS连接有效。

其中一些包括TLS握手、针对证书颁发机构检查的证书以及证书的解密。如果由于某种原因浏览器不喜欢它所看到的内容,例如配置错误或不受支持的版本,您的浏览器可能会显示以下错误:“ERR_SSL_VERSION_OR_CIPHER_MISMATCH”这会阻止您访问该站点。

查看有关如何修复此错误的一些建议。

ERR_SSL_VERSION_OR_CIPHER_MISMATCH的原因

ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误通常发生在较旧的操作系统或浏览器上。

但情况并非总是如此。事实上,我们最近刚刚在他们的WordPress网站上遇到了一个有这个问题的用户,他从另一个主机迁移到另外一个主机。当然,我们运行的是最新版本的Chrome,所以问题出在他们的SSL证书上。Chrome实际上是通过不让您加载它来保护您。

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

您可能还会看到错误的变体,例如:

  • Error 113 (net::err_ssl_version_or_cipher_mismatch): unknown error
  • The client and server don’t support a common SSL protocol version or cipher suite

查看下面的原因,了解发生这种情况的原因以及您可以采取的措施。

检查您的SSL证书

如果您看到此错误,第一个也是最容易开始的地方是对站点上安装的证书执行SSL检查。我们建议使用Qualys SSL Labs提供的免费SSL检查工具。它非常可靠,只需在主机名字段中输入您的域,然后单击“提交”。

如果您愿意,您还可以选择隐藏公开结果的选项。在您的Web服务器上扫描您站点的SSL/TLS配置可能需要一两分钟的时间。

检查SSL证书

检查SSL证书

检查证书名称不匹配

在这个特定的例子中,迁移另外一个主机的客户有一个证书名称不匹配,这会引发ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误。正如您从下面的SSL Labs测试中看到的,这非常快速且易于诊断。正如SSL Labs所说,不匹配可能有多种情况,例如:

  • 该站点不使用SSL,但与其他使用SSL的站点共享一个IP地址。
  • 该站点不再存在,但域仍指向旧IP地址,现在托管了其他一些站点。
  • 该站点使用不支持SSL的内容交付网络 (CDN)。
  • 域名别名是针对不同名称的网站,但别名未包含在证书中。

证书名称不匹配

证书名称不匹配

检查证书上当前域名问题的另一种简单方法是在站点上打开Chrome DevTools。右键单击网站上的任意位置,然后单击“检查”。然后单击安全选项卡并单击“查看证书”。颁发的域将显示在证书信息中。如果这与您当前所在的站点不匹配,则这是一个问题。

 

检查SSL证书上颁发的域

检查SSL证书上颁发的域

但请记住,有通配符证书和其他变体,但对于典型站点,它应该完全匹配。然而,在我们的例子中,ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误实际上阻止了我们在Chrome DevTools中检查它。这就是SSL Labs之类的工具可以派上用场的地方。

检查旧的TLS版本

另一个可能的原因是Web服务器上运行的TLS版本较旧。理想情况下,它应该至少运行TLS 1.2(更好的是TLS 1.3)。(建议阅读:如果您使用的是旧版TLS版本,您可能需要修复Chrome中的ERR_SSL_OBSOLETE_VERSION通知)。

SSL Labs工具也可以提供帮助。在配置下,它将向您显示使用该证书在服务器上运行的TLS的当前版本。如果它是旧的,请联系您的主机并要求他们更新其TLS版本。

TLS 1.3服务器支持

TLS 1.3服务器支持

检查RC4密码套件

根据Google的ERR_SSL_VERSION_OR_CIPHER_MISMATCH文档的另一个原因是RC4密码套件在Chrome版本48中被删除。这不是很常见,但它可能发生在需要RC4的大型企业部署中。为什么?因为在更大和更复杂的配置中,一切通常都需要更长的时间来升级和更新。

安全研究人员、Google和Microsoft建议禁用RC4。因此,您应该确保使用不同的密码套件启用服务器配置。您可以在SSL Labs工具中查看当前的密码套件(如下所示)。

密码套件

密码套件

尝试清除计算机上的SSL状态

要尝试的另一件事是清除Chrome中的SSL状态。就像清除浏览器的缓存一样,如果事情不同步,这有时会有所帮助。要在Windows上的Chrome中清除SSL状态,请按照下列步骤操作:

  • 单击Google Chrome – 设置图标 (Settings) 图标,然后单击设置。
  • 单击显示高级设置。
  • 在网络下,单击更改代理设置。出现Internet属性对话框。
  • 单击内容选项卡。
  • 单击“清除SSL状态”,然后单击“确定”。
  • 重新启动Chrome。

在Windows上的Chrome中清除SSL状态

在Windows上的Chrome中清除SSL状态

如果您使用的是Mac,请参阅这些有关如何删除SSL证书的说明

使用新的操作系统

较旧的操作系统会随着TLS 1.3和最新的密码套件等新技术而过时,因为浏览器不再支持它们。最新SSL证书中的特定组件将停止工作。事实上,谷歌浏览器早在2015年就停止了对Windows XP的支持。我们始终建议尽可能升级到更新的操作系统,例如Windows 11或最新版本的Mac OS X。

暂时禁用杀毒软件

如果您仍然看到ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误,我们建议您尝试的最后一件事是确保您没有运行防病毒程序。或者尝试暂时禁用它。某些防病毒程序会使用自己的证书在您的浏览器和Web之间创建一个层。这有时会导致问题。

本文提到: