浏览器
NET::ERR_SSL_OBSOLETE_VERSION:网站还在用 TLS 1.0/1.1
NET::ERR_SSL_OBSOLETE_VERSIONNET::ERR_SSL_OBSOLETE_VERSION 的意思是:网站只会说 TLS 1.0 或 TLS 1.1,而浏览器已经淘汰了这两个版本。 Chrome 在逐步下线旧版本期间用的是这个代码;如今同样的服务器通常会触发 ERR_SSL_VERSION_OR_CIPHER_MISMATCH。不管哪种,服务器都需要支持 TLS 1.2 或更新版本。
先判断是网站的问题还是你电脑的问题
是网站的问题。用 SSL 检测 看服务器支持哪些协议版本:
curl ssl.sh/example.com
TLS 1.2 和 1.3 都不支持,就得网站方升级服务器。访客这边没有安全的修法:就算能在浏览器里重新开启旧协议,也会削弱你所有的连接。联系网站方;如果是自己内网里的老设备,升级它的固件。
原因
对外入口只支持 TLS 1.0/1.1,原因通常是服务器软件太老、TLS 1.2 被关掉、嵌入式设备或前置代理太老。
1. 服务器软件太老
没打补丁的 Windows Server 2008(非 R2)、老版本 Java 应用服务器、OpenSSL 0.9.8 都提供不了 TLS 1.2。直接测:
openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null 2>&1 | grep -E "Protocol|alert"
2. TLS 1.2 被手动关掉了
十年前的“安全加固指南”有时会留下奇怪的配置,或者 Windows 注册表改错把 TLS 1.2 关了。检查 Nginx 的 ssl_protocols、Apache 的 SSLProtocol,或 Windows 的 SCHANNEL 注册表项。
3. 嵌入式设备
打印机、UPS 管理卡、KVM、老 NAS、老款路由器和摄像头的 TLS 实现常常停留在 TLS 1.0。固件更新有时会加上 TLS 1.2;没有的话就把设备隔离在内网,用 HTTP 管理口在可信网络里访问。
4. 前面的代理或负载均衡太老
源站支持 TLS 1.2,但前面的老负载均衡或反向代理用的是过时的设置。要测对外的那个入口,而不是源站。国内一些政务、学校的老系统前面挂着多年未升级的 WAF 或负载均衡设备,经常就是这种情况。
在各浏览器/系统上的样子
当前版本的 Chrome 和 Edge 已改报 ERR_SSL_VERSION_OR_CIPHER_MISMATCH,Firefox 报 SSL_ERROR_UNSUPPORTED_VERSION。
| 浏览器 | 显示内容 |
|---|---|
| Chrome / Edge / 360 极速模式(当前版本) | “此网站无法提供安全连接”,代码 ERR_SSL_VERSION_OR_CIPHER_MISMATCH |
| Chrome(2020–2021 年) | 提示连接并非完全安全,代码 NET::ERR_SSL_OBSOLETE_VERSION |
| Firefox | “建立安全连接失败”,代码 SSL_ERROR_UNSUPPORTED_VERSION |
| Safari | Safari 无法建立安全连接 |
站长怎么修
修法只有一个:在对外的入口开启 TLS 1.2 和 TLS 1.3。
1. 开启新协议。 Nginx:
ssl_protocols TLSv1.2 TLSv1.3;
Apache:
SSLProtocol -all +TLSv1.2 +TLSv1.3
宝塔面板在站点 SSL 设置里勾选 TLSv1.2 和 TLSv1.3;阿里云/腾讯云的 CDN、负载均衡在 HTTPS 配置里选择最低 TLS 1.2 的安全策略。
2. Windows Server 按微软文档在 SCHANNEL 的 Protocols 注册表项下,为客户端和服务器都启用 TLS 1.2,然后重启。已停止支持的 Windows 版本要升级。
3. 用 TLS 配置生成器 生成经过测试的配置,加密套件也会一起配好。
4. 验证。 curl ssl.sh/example.com 应当显示支持 TLS 1.2 和 1.3、禁用 TLS 1.0/1.1。背景知识见 TLS 1.3。
常见问题
Chrome 有没有开关可以重新允许 TLS 1.0?
没有。曾经临时允许的企业策略也已经移除了。如果是你自己的老设备,在可信内网里用它的 HTTP 管理地址,或者升级固件,不要想办法给浏览器降级。
TLS 1.0 和 1.1 为什么不安全?
它们的握手依赖 SHA-1 和 MD5,没有现代的 AEAD 加密套件,历史上还有 BEAST、POODLE 变种等攻击。RFC 8996 详细列出了理由。
单位的老系统只能在 IE 模式或 360 兼容模式下打开,是这个原因吗?
有可能。只支持 TLS 1.0 的老服务器,在 Windows 系统本身还允许该协议时,IE 内核有时还能连上。这只是权宜之计,服务器应该升级到 TLS 1.2。
怎么查我的服务器支持哪些 TLS 版本?
运行 curl ssl.sh/example.com 或使用 SSL 检测,会列出服务器接受的所有协议版本。也可以在终端用 openssl s_client -tls1_2、-tls1_3 逐个测试:握手成功会显示协商出的协议,失败则以 protocol version 之类的告警结束。