Charles 4.6.5 + MuMu 12 模拟器 HTTPS 抓包:3 步解决 Android 7+ 系统证书信任

发布时间:2026/7/11 10:15:18
Charles 4.6.5 + MuMu 12 模拟器 HTTPS 抓包:3 步解决 Android 7+ 系统证书信任 Charles 4.6.5 MuMu 12 模拟器 HTTPS 抓包3 步解决 Android 7 系统证书信任在移动应用开发和安全测试中HTTPS 抓包是分析网络请求、调试接口的必备技能。但对于 Android 7 及以上版本的系统由于安全策略升级传统的用户证书安装方式已无法满足需求。本文将聚焦 MuMu 12 模拟器环境通过 OpenSSL 转换、ADB 推送和权限修改三个核心步骤彻底解决高版本 Android 的系统证书信任问题。1. 环境准备与证书导出在开始操作前需要确保以下环境就绪MuMu 模拟器 12 版本需开启 Root 权限设置中心 → 其他设置 → 开启 RootCharles 4.6.5已配置好代理端口默认 8888OpenSSL 工具Windows 用户推荐安装 Win64 OpenSSL1.1 导出 Charles 证书在 Charles 界面执行以下操作点击菜单栏Help→SSL Proxying→Save Charles Root Certificate...将证书保存为charles.pem格式如D:\CA\charles.pem注意若使用中文版 Charles对应路径为帮助→SSL 代理→保存 Charles 根证书1.2 关键文件位置确认建议创建专用目录存放证书文件例如mkdir D:\CA cd /d D:\CA2. 证书转换与系统部署2.1 OpenSSL 转换证书格式Android 系统证书需要特定格式通过以下命令转换openssl x509 -subject_hash_old -in charles.pem命令执行后会输出类似24e12a67的哈希值此为证书重命名依据。2.2 证书重命名与验证将charles.pem重命名为[哈希值].0如24e12a67.0验证证书有效性openssl x509 -text -in 24e12a67.0 -noout2.3 ADB 推送证书到系统目录通过以下命令序列完成系统证书部署adb connect 127.0.0.1:7555 # MuMu默认ADB端口 adb root adb remount adb push 24e12a67.0 /system/etc/security/cacerts/ adb shell chmod 644 /system/etc/security/cacerts/24e12a67.0关键参数说明参数作用典型值adb connect连接模拟器127.0.0.1:7555adb remount挂载系统为可写无需参数chmod 644设置证书权限必须为644若遇到remount failed错误可尝试先执行adb disable-verity3. 模拟器网络配置与验证3.1 代理设置在 MuMu 模拟器内完成进入设置→WLAN长按当前网络 → 修改网络 → 高级选项设置代理为手动填入主机 IP 和 Charles 端口如 88883.2 HTTPS 抓包验证在 Charles 中开启 SSL 代理点击Proxy→SSL Proxying Settings添加*:*的通配规则在设备上访问 HTTPS 网站确认能正常捕获请求常见问题排查证书不生效检查/system/etc/security/cacerts下证书权限是否为-rw-r--r--网络连接失败关闭 Windows 防火墙或添加 Charles 白名单ADB 连接超时重启 MuMu 多开器中的 ADB 服务4. 高阶技巧与原理剖析4.1 Android 证书信任机制Android 7 的证书验证变化用户证书仅限 VPN 和应用使用系统证书存放在/system/etc/security/cacerts需要 Root 权限写入证书目录结构要求/system/etc/security/cacerts/ ├── 24e12a67.0 # 哈希命名的CA证书 ├── 3ad48a91.0 # 其他系统证书 └── ...4.2 批量操作脚本对于频繁调试的场景可创建自动化脚本install_cert.batecho off set CERT_NAME24e12a67.0 adb connect 127.0.0.1:7555 adb root adb remount adb push %CERT_NAME% /system/etc/security/cacerts/ adb shell chmod 644 /system/etc/security/cacerts/%CERT_NAME% pause4.3 多设备管理当运行多个 MuMu 实例时需指定不同端口adb connect 127.0.0.1:16384 # 第二个实例端口通过adb devices可查看当前连接的设备列表。