浏览器

SSL_ERROR_UNSUPPORTED_VERSION:Firefox 提示网站 TLS 版本太旧

作者: · 最后核实

报错信息SSL_ERROR_UNSUPPORTED_VERSION

SSL_ERROR_UNSUPPORTED_VERSION 的意思是:Firefox 和网站之间没有共同的 TLS 版本,通常是网站只支持 TLS 1.0 或 1.1。 Firefox 默认要求 TLS 1.2 及以上。偶尔原因不在服务器,而是 Firefox 的设置被改过。

先判断是网站的问题还是你电脑的问题

服务器不支持 TLS 1.2 和 1.3 是服务器太老;服务器支持而你仍报错,就查 Firefox 设置和所在网络。用 SSL 检测 看服务器支持哪些协议:

curl ssl.sh/example.com
  • 检测显示不支持 TLS 1.2 和 1.3:服务器太老了。联系网站方,不要为了公开网站降低 Firefox 的安全设置。
  • 检测显示 TLS 1.2/1.3 正常:查 Firefox。打开 about:config,搜索 security.tls.version,min 大于 3 或者 max 小于 4 就点重置箭头恢复默认。再试试新建配置文件或“故障排除模式”,排除扩展和策略的影响。

原因

多数情况下是服务器只支持 TLS 1.0 或 1.1。

1. 服务器只支持 TLS 1.0 或 TLS 1.1

老旧网络设备、老 Windows 服务器、没人维护的虚拟主机。验证:

openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null 2>&1 | grep -E "Protocol|alert"

出现 protocol version 之类的告警,就说明服务器不支持 TLS 1.2。

2. Firefox 设置被改过

security.tls.version.min 设成 4 会只用 TLS 1.3,访问只支持 TLS 1.2 的服务器就失败;security.tls.version.max 设成 1 或 2 几乎所有网站都会出错。两项都恢复默认。

3. 中间设备只会旧版 TLS

拦截 HTTPS 的老代理、防火墙或上网行为管理设备,自己和 Firefox 之间只能协商 TLS 1.0。只在某个网络里、很多网站都报这个错,就请网络管理员升级设备。

4. 企业策略

统一管理的 Firefox 可以在 policies.json 里设置 TLS 范围(SSLVersionMin/SSLVersionMax),到 about:policies 查看。

在各浏览器/系统上的样子

在 Chrome 和 Edge 里,这个问题显示为 ERR_SSL_VERSION_OR_CIPHER_MISMATCH;curl 报 tlsv1 alert protocol version。

浏览器 显示内容
Firefox “建立安全连接失败”,说明网站可能不支持 TLS 1.2,代码 SSL_ERROR_UNSUPPORTED_VERSION
Chrome / Edge / 360 / QQ 浏览器 ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Safari Safari 无法建立安全连接
curl tlsv1 alert protocol version

站长怎么修

修法是在每个 TLS 入口开启 TLS 1.2 和 1.3,TLS 库太老就先升级。

1. 开启 TLS 1.2 和 1.3。

ssl_protocols TLSv1.2 TLSv1.3;
SSLProtocol -all +TLSv1.2 +TLSv1.3

宝塔面板在站点 SSL 设置里勾选 TLSv1.2、TLSv1.3;云厂商 CDN、负载均衡选最低 TLS 1.2 的安全策略。

2. TLS 库太老就升级。 服务器提供不了 TLS 1.2 时(OpenSSL 1.0.1 是最低门槛),升级到仍在维护的版本,老旧的 CentOS 6 之类系统要迁移。

3. 每个 TLS 入口都要查:CDN、负载均衡和源站可能各有一套协议设置。

4. 生成配置并验证。 用 TLS 配置生成器 生成配置,再用 curl ssl.sh/example.com 确认支持 TLS 1.2 和 1.3。

常见问题

Firefox 页面上有“启用 TLS 1.0 和 1.1”的按钮,要点吗?

不建议。这个按钮降低的是所有网站的最低版本,不只是当前这个。只在可信内网里、访问你自己的设备时临时用一下,用完把 security.tls.version.min 改回 3。如果是网站,请让网站方开启 TLS 1.2。

Firefox 的 TLS 版本设置默认值是多少?

当前版本的 Firefox 默认最低是 3(TLS 1.2),最高是 4(TLS 1.3)。你的值不一样又没改过,就是某个扩展、企业策略或网上的“优化教程”改的。

只有 Firefox 会这样吗?

不是。Chrome、Edge、Safari 也都拒绝只支持 TLS 1.0/1.1 的服务器,只是提示不同,比如 ERR_SSL_VERSION_OR_CIPHER_MISMATCH。

只有一个网站打不开,而且是我家的路由器后台,怎么办?

很多老路由器、NAS、打印机只支持 TLS 1.0。先去厂商官网找固件更新;没有的话,在自己家的可信网络里用它的 HTTP 管理页面,或者临时在 Firefox 里放开 TLS 1.0,用完立刻把 security.tls.version.min 改回 3。日常上网绝对不要一直保持较低的最低版本。

资料来源

  1. Mozilla Support: Secure Connection Failed and Firefox did not connect
  2. Mozilla Support: Error codes on secure websites
  3. RFC 8996: Deprecating TLS 1.0 and TLS 1.1