Reqable 中文文档 下载 App

Android 手机安装 CA 证书:用户证书系统证书与 ADB 全流程

Android 是证书安装最复杂的平台,因为证书分为用户证书和系统证书两种:用户目录不需要权限即可添加删除 CA 证书;系统目录需要 Root 权限。Reqable 在应用内针对多种场景提供了安装指引。

先让 Reqable 检测设备状态

Reqable 依赖电脑上的 ADB 工具(Android Debug Bridge)检查连接的 Android 设备的证书安装状态,包括系统证书和用户证书两种状态。使用前需要:

  1. 从 Android 开发者站点下载 ADB 工具并安装;
  2. 配置好 ANDROID_HOME 和 PATH 环境变量;
  3. 重启 Reqable。
ADB 检测设备证书状态
ADB 检测

系统证书(需 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 场景官方博客有专门方案)。

浏览器的特殊处理

证书环节搞定后,回到 Android 常见问题排查 检查流量是否正常出现。