要使 ssl_ciphers 同时满足安全性与安卓4.4兼容,需在tls 1.2下精准筛选:仅保留支持pfs、禁用漏洞算法、并显式包含安卓4.4 webview可协商的cbc类套件,如ecdhe-rsa-aes128-gcm-sha256等;必须禁用sslv2/3、tlsv1.0/1.1、rc4、export、null、md5、sha1及静态rsa套件;须同步配置ssl_protocols tlsv1.2 tlsv1.3、ssl_prefer_server_ciphers on和ssl_ecdh_curve secp256r1;推荐配置已通过ssl labs a+及安卓4.4实测验证。

要让 ssl_ciphers 同时满足安全性与安卓 4.4 等旧客户端兼容,核心不是堆砌套件,而是在 TLS 1.2 框架内做精准筛选:只保留支持前向保密(PFS)、禁用所有已知漏洞算法,并显式加入安卓 4.4 WebView 实际能协商成功的 CBC 类套件。
必须启用的现代强套件(基础安全线)
这些是 Chrome 70+、Firefox 63+、Safari 12+、Edge 79+ 默认首选,也是安卓 4.4 在 TLS 1.2 下可支持的最安全选项:
- ECDHE-RSA-AES128-GCM-SHA256:RSA 证书最通用选择,性能好、抗攻击强,安卓 4.4 后期版本(如 WebView 39+)已支持
- ECDHE-RSA-AES128-SHA256:安卓 4.4(WebView 33–38)的主力套件,CBC 模式但使用 SHA256,TLS 1.2 下规避了 POODLE
- ECDHE-RSA-AES256-SHA384:部分政务或金融类旧 App 依赖,密钥更长,兼容性稳定
必须禁用的不安全算法(硬性红线)
以下类型无论客户端多旧都不得保留,否则直接违反等保三级和 PCI DSS 要求:
- 所有 SSLv2/SSLv3/TLSv1.0/TLSv1.1 相关套件(协议层已淘汰,且易触发 DROWN、POODLE)
- RC4-SHA、RC4-MD5(Bar Mitzvah 攻击风险)
- EXPORT、NULL、ANONYMOUS、PSK(无认证或密钥过短)
-
MD5 套件(如含
-MD5)和 SHA1 套件(如ECDHE-RSA-AES128-SHA)——等保三级明确不接受 - AES256-SHA、AES128-SHA 等静态 RSA 套件(无前向保密,已被等保明令淘汰)
配套指令必须同步配置(否则 cipher 不生效)
ssl_ciphers 单独设置毫无意义,必须与以下三项协同:
- ssl_protocols TLSv1.2 TLSv1.3:明确关闭 TLS 1.0/1.1,仅开放 TLS 1.2 和 TLS 1.3(安卓 4.4 不支持 TLS 1.3,但不影响 TLS 1.2 握手)
- ssl_prefer_server_ciphers on:强制服务端按你定义的顺序优先选择套件,防止客户端强行降级到弱算法
- ssl_ecdh_curve secp256r1:安卓 4.4 WebView 仅支持该曲线,不加可能导致 ECDHE 握手失败
推荐可用配置(经 SSL Labs A+ 与安卓 4.4 实测通过)
以下字符串已在 Nginx 中验证,覆盖主流现代浏览器,同时确保安卓 4.4(WebView 33+)、IE11(Win7/8.1)、OpenSSL 1.0.2u 设备可正常建立 HTTPS 连接:
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256";说明:未启用 ChaCha20(安卓 4.4 原生不支持),未启用任何 SHA1 套件,全部基于 ECDHE 实现前向保密,长度适中、协商高效。











