Charles 证书安装教程:手机代理下载 → 用户证书 → Magisk 面具提升系统证书
适用:已 root(Magisk)的 Android 设备 + Charles 抓包。
目标:让 Charles 根证书进入系统信任域,使所有 App(除证书固定外)的 HTTPS 流量可解密。实战环境:Pixel 3(92CX1WQ17,AOSP Android 12,Magisk 27.0 已 root,LSPosed 1.9.2)。
命令执行环境:Git Bash,带MSYS_NO_PATHCONV=1前缀的命令不可省略。
原理一句话
Android 7+ 的 App 默认只信任系统证书,用户证书大多不认。
所以流程分两段:先把 Charles 证书装成用户证书(手机自己下载),再用Always Trust User Certificates模块在每次开机时把它搬运进系统信任域。
手机连代理 → 下载证书 → 装用户证书 → 装搬运模块 → 重启 → 系统证书生效 → 抓包前置条件
| 项 | 要求 |
|---|---|
| Charles | 电脑上运行,端口默认 8888 |
| 设备 | 已 root(Magisk),USB 调试已授权 |
| 锁屏 PIN | 手机必须已设置锁屏密码(安装用户证书的前提) |
| 网络 | 手机和电脑同一 Wi-Fi |
第一步:手机连电脑代理
- 电脑查本机 IP:
ipconfig,记下 WLAN 适配器 IPv4(如192.168.1.100) - 手机:设置 → 网络和互联网 → WLAN → 当前网络 → 修改网络 → 高级 →代理:手动
- 主机填电脑 IP,端口填
8888→ 保存
第二步:手机浏览器下载证书
手机浏览器地址栏输入(http,不要 https):
http://charlesproxy.com/getssl- 此请求由 Charles 自身应答,返回的就是根证书文件(pem 格式)
- 判断成功:Charles 会话列表出现
charlesproxy.com请求;浏览器弹出下载 - 此前是此链接,已打不开:
http://chls.pro/ssl(同一文件)
第三步:安装为用户证书
两种方式二选一:
- 快捷:直接点浏览器下载完成通知里的文件 → 系统自动拉起证书安装器 → 命名 → 确认
- 手动:设置 → 安全 → 加密与凭据 → 安装证书 →CA 证书→ 选下载目录里的文件
验证用户证书已装(记下xxxxxxxx.0这串哈希,后面要用):
MSYS_NO_PATHCONV=1adb-s92CX1WQ17 shellsu-c"ls /data/misc/user/0/cacerts-added/"第四步:安装 Always Trust User Certificates 模块
电脑(走代理)下载:https://github.com/NVISOsecurity/MagiskTrustUserCerts/releases 里的
MagiskTrustUserCerts-v1.3.zip(注意不是 Source code 包;装好后在 Magisk 里显示名为Always Trust User Certificates)推送手机:
MSYS_NO_PATHCONV=1adb-s92CX1WQ17 push /d/Downloads/AlwaysTrustUserCerts_v1.3.zip /sdcard/Download/- 手机 Magisk App →模块→从存储安装→ 选该 zip → 显示 Done →重启
第五步:验证系统证书生效
开机后,用第三步记下的哈希查系统目录:
MSYS_NO_PATHCONV=1adb-s92CX1WQ17 shell"ls /system/etc/security/cacerts/ | grep a1b2c3d4"- 有输出= 提升成功,系统信任域里有 Charles 证书了
- 无输出 = 模块没启用(Magisk 模块页检查开关)或没重启,重启后再查
第六步:Charles 开解密 + 抓包验证
- Charles 菜单:Proxy → SSL Proxying Settings→ 勾选Enable SSL Proxying→ Add → Host
*、Port*→ OK - 手机浏览器开任意 https 网站(如
https://www.baidu.com) - Charles 里应看到解密后的请求明细(不再是灰色 CONNECT 红 X)
- 打开目标 App 验证流量
常见问题
| 现象 | 原因与处理 |
|---|---|
| Charles 里没有 charlesproxy.com 请求 | 手机流量没走 Charles:代理没配好,或电脑防火墙拦 8888 |
| 装用户证书时灰着点不了 | 没设锁屏 PIN,先设置 |
| 模块装了但系统目录查不到 | 模块只在开机时搬运 → 必须重启;重启后 Magisk 模块页确认开关开 |
| 目标 App 依然红 X | App 做了证书固定(Pinning),证书方案无效 → LSPosed 装 TrustMeAlready 勾选该 App |
| 抓完包手机断网 | 手机代理还指着电脑 → 用完把代理改回「无」 |
安全收尾
- 抓包结束:手机 WLAN 代理改回「无」
- 换电脑 / 重装 Charles:根证书变化,重复第二~五步
- 不想一直信任 Charles:Magisk 里禁用模块重启即可,用户证书可随时在凭据页删除