Charles抓取模拟器中APP的https请求
君子积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。
环境
- 系统:win11
- Charles版本:4.6.6
- 模拟器:逍遥模拟器
Charles和模拟器配置
- 点击help>SSL Proxying>Install Charles root Certificate 安装证书,
证书位置选择‘将所有的证书都放入下列存储’,证书存储选择受信任的根证书颁发机构 - 点击proxy>SSL Proxying Settings打开如下弹框,勾选ssl代理开关,填写需要抓取https的host,port里填写443即可,也可以用*号代替
- 打开charles,点击help>SSL Proxying>install charles ……………….browser弹出charles信息页面
- 模拟器中配置代理,我是用的是postern工具,地址和端口填上面的
- 下载证书,浏览器中输入
chls.pro/ssl
,如果下载不了就用这个网站https://www.charlesproxy.com/getssl/
出现问题
在抓取APP的https请求时,出现如下报错:
You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu. |
问题原因
官方给出原文:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
android 7及以上,需要配置可信证书:
- 在app开发时添加为可信证书
- 证书放到系统可信证书目录下(本文使用办法,好处是所有app都可以抓到)
解决步骤
- 计算证书hash值
openssl x509 -inform PEM -subject_hash_old -in charles.pem
- 把charles.pem 改名为 928a94cc.0
- 将文件放到共享文件夹,然后粘贴或者移动到”/system/etc/security/cacerts”目录下
这里需要开启超级管理员权限,不知道怎么放共享文件,以及开启超级管理员权限,自行百度。
- 将文件权限改为777
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 和而不同!
评论
ValineDisqus