Android 7及以下设备SSL兼容性问题解决方案咨询
针对Android 7及以下设备的SSL证书兼容解决方案
方案1:调整Let's Encrypt证书链,兼容旧设备
Let's Encrypt当前默认使用ISRG Root X1作为根证书,但Android 7及以下系统不信任该根证书。你可以配置兼容证书链:将证书链设置为「Let's Encrypt R3中间证书 + DST Root CA X3交叉签名」,旧设备会通过内置的信任根DST Root完成验证,新设备则会优先使用ISRG Root(即使DST Root到期,新设备不受影响)。
- 操作方式:使用Certbot等证书工具时,添加
--preferred-chain "DST Root CA X3"参数生成证书。 - 补充说明:DST Root CA X3虽在2024年9月到期,但由于是交叉签名机制,只要旧设备本地仍保留该根证书(绝大多数Android 7及以下设备内置),就能正常完成证书验证。
方案2:更换支持旧根证书的CA服务
若不想依赖Let's Encrypt的交叉链,可选择根证书被Android 7及以下广泛信任的CA服务商:
- Sectigo/Comodo:其AddTrust External CA Root等根证书被几乎所有旧Android设备信任,颁发的证书可兼容全版本设备。
- GlobalSign:拥有被旧系统普遍认可的根证书,兼容性表现稳定。
- 关于ZeroSSL的问题:你遇到的全设备拦截大概率是证书链配置错误,ZeroSSL证书本身支持旧设备,需确保配置了其提供的完整PEM包(包含根证书与中间证书)。
方案3:优化服务器TLS配置
除证书链外,服务器TLS参数也需适配旧设备:
- 启用TLS 1.0和TLS 1.1(部分Android 7及以下设备不支持TLS 1.2及以上版本)。
- 启用旧设备支持的加密套件,比如
ECDHE-RSA-AES128-GCM-SHA256、AES128-SHA等,避免仅使用现代加密套件。
内容的提问来源于stack exchange,提问作者Kaio Borges
相关产品推荐
相关产品推荐

