生产故障:解决由于 ssl_ciphers 设置过严导致的所有旧版浏览器无法访问

胖丽吖_1829

胖丽吖_1829

2026-05-09

787人浏览

原创

旧版浏览器打不开HTTPS网站主因是ssl_ciphers配置过严,缺失IE11、Android 4.4 WebView等所需AES-CBC+SHA类旧加密套件;需在禁用不安全算法前提下,显式保留ECDHE-RSA-AES128-SHA等CBC套件,并确保ssl_protocols含TLSv1.2、ssl_prefer_server_ciphers开启。

生产故障:解决由于 ssl_ciphers 设置过严导致的所有旧版浏览器无法访问

旧版浏览器打不开 HTTPS 网站,十有八九是 ssl_ciphers 配置太“洁癖”了——只认最新最安全的套件,把 IE11、Android 4.4 WebView、Chrome 49 甚至部分 QQ 浏览器直接拒之门外。这不是证书问题,也不是协议版本没开,而是加密算法列表里缺了它们能握手成功的那几款。

哪些旧浏览器容易被拦在门外

以下浏览器或内核在 TLS 握手时依赖较老但尚未完全淘汰的加密套件:

  • IE11(Windows 7/8.1):不支持 GCM 模式,必须有 AES-CBC + SHA1 套件,如 ECDHE-RSA-AES128-SHA
  • Android 4.4 及更早 WebView:仅支持 TLS 1.2,但不支持 ChaCha20 或部分 ECDSA 套件,需保留 AES128-SHA256 和 AES256-SHA
  • Chrome ≤49(尤其 XP SP3 环境):会因协商到“blacklisted suite”被拒绝,实际需要兼容 ECDHE-RSA-AES128-SHA 和 DHE-RSA-AES128-SHA
  • 部分国产浏览器(如魅族、早期 QQ 浏览器):基于旧 Chromium 内核,对 AEAD 套件支持不稳定,需回退到 CBC 类组合

推荐的兼容性优先 ssl_ciphers 配置

这个配置在禁用所有已知不安全算法(RC4、SSLv3、EXPORT、MD5、NULL)的前提下,覆盖 TLS 1.2 主流旧终端,同时保持 A+ 评级(SSLLabs 测试):

ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA";

page-agent 浏览器控制(CDP)
page-agent 浏览器控制(CDP)

使用 page-agent CLI(CDP)控制浏览器;CLI只能通过 GitHub Release 的 .tgz 安装,npm 官方包暂未发布。

下载

关键点说明:

  • 开头全是 ECDHE 前缀,确保前向保密;GCM 与 CBC+SHA 并存,兼顾现代与旧环境
  • 显式保留 -SHA 和 -SHA256 结尾的 CBC 套件,是 IE11 和 Android 4.x 的命门
  • 未启用 CHACHA20:虽安全但旧内核支持差,反而引发握手失败
  • 禁用所有 DES、RC4、MD5、EXPORT,避免降级攻击风险

验证是否真正生效

改完配置别急着 reload,先做三件事:

  • 运行 nginx -t 确保语法无误
  • 用 SSL Labs 测试工具 查看 Handshake Simulation 区域,重点确认 Chrome 49 / XP SP3、IE 11 / Win7、Android 4.4.2 是否显示绿色 ✅(不是灰色或红色)
  • 在真实旧设备上访问,比如 Windows 7 虚拟机跑 IE11,或安卓 4.4 实机打开目标域名,观察是否跳过 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误

额外注意项

仅调 ssl_ciphers 不够,还需同步检查:

  • ssl_protocols 必须包含 TLSv1.2(旧浏览器不支持 TLS 1.3),建议设为 ssl_protocols TLSv1.2 TLSv1.3;
  • ssl_prefer_server_ciphers on; 必须开启,否则客户端可能强行选它支持但你已禁用的套件
  • 若使用 SM2 国密证书,OpenSSL 版本必须 ≥1.1.1,且需单独声明 EECDH+SM2,不能混在通用列表中
  • 重启后用 openssl s_client -connect yourdomain.com:443 -cipher 'ALL:COMPLEMENTOFALL' -tls1_2 手动测试可协商套件,比浏览器更底层、更准

相关专题

更多
C语言变量命名
C语言变量命名

c语言变量名规则是:1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。php中文网还提供c语言变量的相关下载、相关课程等内容,供大家免费下载使用。

2023.06.20

3729

3

c语言入门自学零基础
c语言入门自学零基础

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,本专题为大家c语言入门自学零基础的相关文章,以及相关课程,感兴趣的朋友千万不要错过了。

2023.07.25

2468

9

c语言运算符的优先级顺序
c语言运算符的优先级顺序

c语言运算符的优先级顺序是括号运算符 > 一元运算符 > 算术运算符 > 移位运算符 > 关系运算符 > 位运算符 > 逻辑运算符 > 赋值运算符 > 逗号运算符。本专题为大家提供c语言运算符相关的各种文章、以及下载和课程。

2023.08.02

1420

5

c语言数据结构
c语言数据结构

数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.09

1358

4

c语言random函数用法
c语言random函数用法

c语言random函数用法:1、random.random,随机生成(0,1)之间的浮点数;2、random.randint,随机生成在范围之内的整数,两个参数分别表示上限和下限;3、random.randrange,在指定范围内,按指定基数递增的集合中获得一个随机数;4、random.choice,从序列中随机抽选一个数;5、random.shuffle,随机排序。

2023.09.05

1436

5

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

2023.09.20

2398

7

c语言get函数的用法
c语言get函数的用法

get函数是一个用于从输入流中获取字符的函数。可以从键盘、文件或其他输入设备中读取字符,并将其存储在指定的变量中。本文介绍了get函数的用法以及一些相关的注意事项。希望这篇文章能够帮助你更好地理解和使用get函数 。

2023.09.20

4000

8

c数组初始化的方法
c数组初始化的方法

c语言数组初始化的方法有直接赋值法、不完全初始化法、省略数组长度法和二维数组初始化法。详细介绍:1、直接赋值法,这种方法可以直接将数组的值进行初始化;2、不完全初始化法,。这种方法可以在一定程度上节省内存空间;3、省略数组长度法,这种方法可以让编译器自动计算数组的长度;4、二维数组初始化法等等。

2023.09.22

19015

6

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

549

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程