# ERR_SSL_VERSION_OR_CIPHER_MISMATCH 原因和服务器修法

> ERR_SSL_VERSION_OR_CIPHER_MISMATCH 表示浏览器和服务器没有共同的 TLS 版本或加密套件。多见于只支持 TLS 1.0 的老服务器或 CDN 没配证书。

Source: https://ssl.sh/zh/errors/err-ssl-version-or-cipher-mismatch/
Last updated: 2026-11-10

**ERR_SSL_VERSION_OR_CIPHER_MISMATCH 的意思是：浏览器和服务器之间没有任何一个共同支持的 TLS 版本或加密套件，所以建立不了安全连接。** 几乎都是服务器或 CDN 的配置问题：TLS 设置太旧，或者没有你访问的这个域名的证书。

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

外部检测只看到 TLS 1.0/1.1、弱套件或缺证书，是网站的问题；外部检测显示 TLS 1.2/1.3 正常，就查本地。用 [SSL 检测](https://ssl.sh/zh/tools/ssl-checker/) 从外部看服务器支持哪些协议：

```bash
curl ssl.sh/example.com
```

- **检测显示只有 TLS 1.0/1.1、只有弱套件，或者没有这个域名的证书**：网站要修，访客这边没有安全的绕过办法。
- **检测显示 TLS 1.2/1.3 正常**：查本地。浏览器太旧、Windows 组策略禁用了 TLS 1.2、杀毒软件 HTTPS 扫描、公司代理，都可能导致协商失败。

## 原因

这个错误有 5 种原因，最常见的是服务器只支持 TLS 1.0 或 1.1。

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

常见于老旧网络设备、Windows Server 2008 上的老 IIS 和多年没动过的手写配置。确认方法：

```bash
openssl s_client -connect example.com:443 -servername example.com -tls1_2 </dev/null
openssl s_client -connect example.com:443 -servername example.com -tls1_3 </dev/null
```

两个都失败就要开启 TLS 1.2 和 1.3。另见 [NET::ERR_SSL_OBSOLETE_VERSION](https://ssl.sh/zh/errors/net-err-ssl-obsolete-version/)。

### 2. CDN 或主机上没有这个域名的证书

CDN 节点收到一个它没有证书的 SNI 域名时，可能直接终止握手，Chrome 就报这个错。常见于刚加的子域名，或者通配符覆盖不到的二级子域名。在阿里云/腾讯云 CDN 控制台给这个加速域名单独配置 HTTPS 证书。

### 3. 只开了过时的加密套件

服务器只提供 RC4、3DES 或出口级套件，现代浏览器一个都不支持。用 [加密套件查询](https://ssl.sh/zh/tools/cipher-suite-lookup/) 查具体套件，换成新的套件列表。

### 4. 证书类型和套件对不上

用的是 ECDSA 证书，却只开了 `ECDHE-RSA-*` 套件（或者反过来），就没有可用的组合。两类都加上，或者直接用新版 OpenSSL 的默认值。

### 5. 客户端限制了 TLS

Windows 组策略或注册表禁用了 TLS 1.2、浏览器太老、安全软件干扰，都会导致协商失败。升级浏览器，按微软文档检查 TLS 注册表设置。国内一些老版本的“双核浏览器”在兼容模式下用的是系统 IE 内核，也会受 Windows TLS 设置影响。

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

Chrome 内核的浏览器显示 ERR_SSL_VERSION_OR_CIPHER_MISMATCH，Firefox 按具体原因显示 SSL_ERROR_NO_CYPHER_OVERLAP 或 SSL_ERROR_UNSUPPORTED_VERSION。

| 浏览器 | 显示内容 |
|---|---|
| Chrome / Edge / 360 极速模式 / QQ 浏览器 | “此网站无法提供安全连接”“example.com 使用了不受支持的协议。”`ERR_SSL_VERSION_OR_CIPHER_MISMATCH` |
| Firefox | [SSL_ERROR_NO_CYPHER_OVERLAP](https://ssl.sh/zh/errors/ssl-error-no-cypher-overlap/) 或 [SSL_ERROR_UNSUPPORTED_VERSION](https://ssl.sh/zh/errors/ssl-error-unsupported-version/) |
| Safari | [Safari 无法建立安全连接](https://ssl.sh/zh/errors/safari-cant-establish-secure-connection/) |
| curl | `tlsv1 alert protocol version` 或 `sslv3 alert handshake failure` |

## 站长怎么修

修法是在服务器、CDN 和负载均衡上开启 TLS 1.2、TLS 1.3 和现代套件，并给每个域名绑定证书。

**1. 开启 TLS 1.2、1.3 和现代套件。** Nginx：

```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:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
```

宝塔面板在“网站 → 设置 → SSL”里可以勾选 TLS 版本，取消 TLSv1 和 TLSv1.1。阿里云/腾讯云 CDN 和负载均衡在 HTTPS 配置里选择 TLS 安全策略，挑只含 TLS 1.2 及以上的策略。[TLS 配置生成器](https://ssl.sh/zh/tools/tls-config-generator/) 能输出 Apache、HAProxy 等的等效配置。

**2. Windows Server** 按微软 TLS 注册表文档，在 `HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols` 下启用 TLS 1.2 后重启。Windows Server 2012 R2 及以后默认就支持 TLS 1.2。

**3. 每个域名都要有证书。** CDN、负载均衡上的每个域名都要绑定证书。

**4. 复测。** `curl ssl.sh/example.com` 应当显示支持 TLS 1.2 和 1.3，并且证书有效。
