Android API<25设备无法连接Let's Encrypt SSL服务器的解决方案咨询
适配旧版Android(API<25)连接Let's Encrypt SSL服务器的方案
以下是针对旧版Android设备(系统版本低于7.1.1)无法连接续期后Let's Encrypt证书服务器的可行方案,按推荐优先级排序:
1. 调整服务器证书链为DST Root CA X3兼容链
旧版Android的信任存储默认包含IdenTrust的DST Root CA X3根证书,且不会验证中间证书的有效期。尽管Let's Encrypt与DST Root CA X3的交叉签名协议已过期,仍可通过指定兼容链让旧设备信任证书:
- 使用Certbot签发/续期证书时,添加参数:
--preferred-chain "DST Root CA X3" - 手动配置服务器(如Nginx、Apache)时,将证书链文件替换为包含ISRG Root X1(交叉签名版)和DST Root CA X3的链文件,而非默认的ISRG Root X1自签名链。
2. 切换至兼容旧Android的CA证书
若上述方案无效,可改用其他CA提供的SSL证书,比如ZeroSSL——其证书链使用的根证书已预装在旧版Android的信任存储中,无需额外配置即可兼容。
3. 为旧设备手动安装ISRG Root X1根证书
针对可控范围内的设备(如内部员工设备、特定用户群体),可指导用户手动安装ISRG Root X1根证书:
- 下载ISRG Root X1证书文件(PEM格式)
- 在Android设备的「设置」-「安全」-「加密与凭据」-「从存储安装」中导入证书,并设置为信任凭据。
注意:此方案需要用户操作,不适用于公开服务。
4. 自定义APP信任证书(仅适用于自有APP)
若服务通过自有APP访问,可修改APP的网络请求配置,将ISRG Root X1根证书加入APP的自定义信任存储,绕过系统默认的证书验证逻辑,确保APP能正常连接服务器。
内容的提问来源于stack exchange,提问作者Daniele B
相关产品推荐
相关产品推荐

