Android 手机安装 CA 证书:用户证书系统证书与 ADB 全流程
Android 是证书安装最复杂的平台,因为证书分为用户证书和系统证书两种:用户目录不需要权限即可添加删除 CA 证书;系统目录需要 Root 权限。Reqable 在应用内针对多种场景提供了安装指引。
先让 Reqable 检测设备状态
Reqable 依赖电脑上的 ADB 工具(Android Debug Bridge)检查连接的 Android 设备的证书安装状态,包括系统证书和用户证书两种状态。使用前需要:
- 从 Android 开发者站点下载 ADB 工具并安装;
- 配置好
ANDROID_HOME和PATH环境变量; - 重启 Reqable。

系统证书(需 Root)
无论设备是否 Root,Reqable 都能检测系统证书的安装状态;但只有 Root 的设备才能一键安装系统证书(支持 Android 5.0 - 15 系统)。如果已安装系统证书,可以跳过用户证书的安装。

用户证书(免 Root 手动安装)
没有 Root 的设备走用户证书路线,需要手动操作:
设置 → 安全 → 加密与凭据 → 安装证书 → CA 证书,选择导出的证书并安装(需要用户授权验证)。
注意:Reqable 无法检测非 Root 设备的用户证书安装状态,界面会一直显示「未知证书安装状态」。
关键陷阱:Android 7.0 以上应用不信任用户证书
在 Android 7.0 及以上版本,装完用户证书后,目标应用还需要在开发配置中声明信任用户证书,否则照样握手失败。官方给出两种方式:
方式一:build.gradle 配置依赖(推荐)
dependencies {
debugImplementation("com.reqable.android:user-certificate-trust:1.0.0")
}
Debug 包会自动集成网络安全配置文件。
方式二:手动创建网络安全文件
新建 res/xml/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
再在 AndroidManifest.xml 的 application 节点上配置引用。官方特别提醒:请在发行版本中移除此配置,且此方式只对 Android Native 应用有效,基于 Flutter 的应用无效(Flutter 场景官方博客有专门方案)。
浏览器的特殊处理
- Chrome:证书信任策略随版本变化,高版本 Chrome 需要把 CA 证书装到用户证书目录,低版本则需要装到系统证书目录;不确定就分别尝试。
- Firefox:使用内置 CA 验证机制,装系统或用户目录都不被信任。需要先在 Firefox 设置 →「关于 Firefox」→ 连点顶部 Logo 5 下启用调试菜单,再到「Secret Settings」启用「Use third party CA certificates」,然后装到用户目录。
证书环节搞定后,回到 Android 常见问题排查 检查流量是否正常出现。