Chrome, Edge and other Chromium browsers浏览器
错误信息
net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH
错误页面上显示为“ERR_SSL_VERSION_OR_CIPHER_MISMATCH”,在自动化工具中显示为“net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH”。在我们的测试中,仅支持 TLS 1.0 的服务器,以及只有一个 RSA 密钥交换 CAMELLIA 套件的服务器,都会触发这个错误。
Chrome, Edge and other Chromium browsers — "This site can't provide a secure connection … uses an unsupported protocol"
含义
Chrome 与服务器之间没有共同支持的 TLS 版本或密码套件,因此无法完成握手。Chrome 只支持搭配现代密码套件的 TLS 1.2 和 1.3;仅支持 TLS 1.0/1.1、RC4、3DES 或其他旧式配置的服务器会被拒绝。页面会提示该网站“uses an unsupported protocol”。
原因
服务器只支持 TLS 1.0 或 1.1
常见2020年,Chrome 移除了 TLS 1.0/1.1;老旧的网络设备、打印机、NAS 和无人维护的服务器仍然不提供任何更新的版本。
没有受支持的密码套件
常见只允许 RC4、3DES 或冷门套件(CAMELLIA、SEED)并采用 RSA 密钥交换的服务器,没有任何 Chrome 会使用的套件。
边缘节点上没有所请求域名的证书
偶见某些 CDN 和负载均衡器在自定义域名尚未配置证书时会中止握手。
修复方法
- 1.
查明服务器提供了哪些选项
如果使用 ECDHE 套件的 TLS 1.2 也连接失败,说明服务器需要升级。
bash nmap --script ssl-enum-ciphers -p 443 legacy.example.com # versions and suites offered echo | openssl s_client -connect legacy.example.com:443 -servername legacy.example.com -tls1_2 -brief - 2.
网站所有者:启用 TLS 1.2/1.3 和现代密码套件
当前的密码套件适用于过去十年内发布的所有浏览器。
text # nginx ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384; - 3.
托管在 CDN 上的网站:检查域名的证书状态
在把 DNS 指向边缘节点之前,确认域名已绑定、证书已签发。
text CDN / hosting: check that the custom domain is attached and has an active certificate; some edges refuse the handshake for names without a certificate.
相关错误
net::ERR_SSL_PROTOCOL_ERRORChrome, Edge and other Chromium browsersSSL_ERROR_UNSUPPORTED_VERSIONFirefoxSSL routines:tls_post_process_client_hello:no shared cipherOpenSSL (server side: nginx, Apache, Postfix, openssl s_server)curl: (35) TLS connect error: error:0A000102:SSL routines::unsupported protocolcurl (OpenSSL backend)