接口测试 把 charles,Fiddler 证书安装到安卓根目录,解决安卓微信 7.0 版本以后安装证书也无法抓包问题,需要 root

· 2020年01月07日 · 最后由 guiyu 回复于 2020年01月09日 · 10690 次阅读

首先文章解决的是安卓手机安装证书后依然无法抓包 https 请求。

问题背景

  1. 安卓系统>7.0,且应用不信任用户安装的证书文件

Fiddler 证书安装到安卓根目录

  1. 下载 fiddler 证书到电脑上
  2. 打开命令窗口,执行以下命令,查看证书信息
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer

  1. 保存上图执行命令后第一行输出内容,转换证书格式:,把上个命令第一行输入内容,命名为新文件名称 +.0 后缀格式
openssl x509 -inform DER -in FiddlerRoot.cer -text > e5742ab9.0
  1. 编辑输出的文件,把"-----BEGIN CERTIFICATE-----"到文件结束这部分移动到文件首部
  2. 执行 adb 命令连接手机,获取权限,把文件夹挂载为读写模式,把文件复制到证书根目录
adb root

adb remount

adb shell mount -o rw,remount /system

adb push e5742ab9.0 /system/etc/security/cacerts

  1. 以上就 OK 了。如果不放心可以 cd 到对应目录,检查文件是否存在,文件权限是否与其他证书一致
  2. 证书安装 OK,其他代理选项正常配置即可

Charles 证书安装到安卓根目录

  1. 下载证书到电脑上
  2. 打开命令窗口执行以下命令,查看证书信息
openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate.pem

  1. 保存上图执行命令后第一行输出内容,转换证书格式:,把上个命令第一行输入内容,命名为新文件名称 +.0 后缀格式
mv charles-ssl-proxying-certificate.pem e5742ab9.0
  1. 执行 adb 命令连接手机,获取权限,把文件夹挂载为读写模式,把文件复制到证书根目录
adb root

adb remount

adb shell mount -o rw,remount /system

adb push e5742ab9.0 /system/etc/security/cacerts

  1. 以上就 OK 了。如果不放心可以 cd 到对应目录,检查文件是否存在,文件权限是否与其他证书一致
  2. 证书安装 OK,其他代理选项正常配置即可

问题解决

  1. error: no devices/emulators found 或者 adb: unable to connect for root: no devices/emulators found
adb disable-verity 

adb reboot  # 重启

然后重新按照上面的步骤操作

如果提示 adb 命令参数错误,找一个版本高点的 adb 工具包

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 5 条回复 时间 点赞

困扰已久,在线求教育,

married577 回复

这命令就是重命名,windows 的 shell 没这个命令,你手动改下呗

雨夜狂奔 回复

能不能麻烦出个 windows 版的,只想直接 copy

#4 · 2020年01月09日 Author

鼠标选中文件右键重新命名就好了

最简单的就是找个 7 或者更低版本的手机了

6楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册