Android 8.1上Chromium无法使用已安装SSL证书问题求助
解决Android 8.1上Chromium信任自签名证书的问题
1. 调整证书的安装凭据类别
Android 8.1起,证书分「用户凭据」和「系统凭据」,Chromium默认只信任系统级凭据。你之前的安装方式默认把证书放到了用户凭据里,这就是Chromium不认的核心原因之一。
- 操作:重新安装证书,在安装流程中找到「凭据用途」选项,选择「VPN和应用」;如果设备已root,也可以手动把用户凭据里的证书迁移到系统凭据目录(
/system/etc/security/cacerts/),并修改权限为644。
2. 补全证书的Subject Alternative Name(SAN)字段
从Chrome 58开始,仅靠证书的Common Name(CN)字段匹配域名已经不被信任,必须添加与服务器FQDN一致的SAN字段。
- 验证:在桌面Chrome里打开证书详情,查看「主题备用名称」是否包含你的服务器域名(格式如
DNS:your-server.example.com)。如果没有,重新生成自签名证书,示例openssl命令:
替换命令里的域名和IP为你的实际信息。openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes \ -keyout server.key -out server.crt \ -subj "/CN=your-server.example.com" \ -addext "subjectAltName=DNS:your-server.example.com,IP:192.168.1.100"
3. 检查证书的哈希算法与有效期
- 确保证书使用SHA-256及以上的哈希算法,SHA-1已经被Chromium彻底弃用。
- 证书有效期不要超过398天(Chrome 101+的限制),哪怕是自签名证书也得遵守这个规则。
4. 启用Chromium的本地不安全连接豁免
如果没办法把证书装到系统凭据,针对同局域网的场景,可以给Chromium开个特例:
- 在地址栏输入
chrome://flags/#allow-insecure-localhost,把选项改成「Enabled」,重启Chromium后生效。这个设置只对本地局域网和localhost生效,不会影响公网访问的安全性。
内容的提问来源于stack exchange,提问作者Maxis
相关产品推荐
相关产品推荐

