Charles抓包失败
Andoird端
问题描述
You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
问题原因
android 7及以上,需要配置可信证书:
- 在app开发时添加为可信证书
- 或 将证书放到系统可信证书目录下(本文使用办法,好处是所有app都可以抓到)
解决步骤
- Help–>SSL Proxying–>Save Charles,保存地址可以选择桌面,如图:
-
将生成的证书移动到模拟器系统目录下
/system/etc/security/cacerts
2.1. 计算证书hash值
openssl x509 -inform PEM -subject_hash_old -in test.pem
2.2 将Charles.pem 改名为
0b697556.0
后保存到模拟器"/system/etc/security/cacerts"目录下-
确认雷电模拟器开启了“磁盘共享-System.vmdk 可写入”
-
确认开启了Root
-
执行以下命令
1.将文件推送到模拟器内 adb push 0b697556.0 /sdcard 2.登录模拟器(只存在一个模拟器就不用-s来指定了) adb shell 3.切换到root模式 su root 4.使用root将文件移动到"/system/etc/security/cacerts"目录下 cp /sdcard/0b697556.0 /system/etc/security/cacerts/0b697556.0 ################## 如果报 read-only 异常,需要先登录模拟器用root权限改下可读写 adb shell su root mount -o remount -o rw / ################## 5.将文件权限改为777 chmod 777 /system/etc/security/cacerts/0b697556.0
-
-
重启模拟器APP,看下Charles中已经有数据了
附上资源
- charles
- adb工具:来自android_sdk:platform-tools
- openssl-3.2.0安装包:安装后在C:\Program Files\OpenSSL-Win64\bin下运行即可
https://www.123pan.com/s/KYyzVv-YqDzv.html
提取码:6666
IOS端
安装证书后,需要在设置->通用->关于本机->证书信任设置-> charles proxy custom root certificate
中打开信任开关!
参考
https://www.codenong.com/cs106843315/