持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
Charles抓取PC端和Android端和iOS端http/https请求
设备和版本系信息 Charles版本:v4.6.3
电脑系统:macOS macOS Ventura 13.0 Beta版
手机:iPhone se2 ,iOS 16/三星 note10+ ,Android 12
Charles是一个可抓取所有http/https的请求、响应流量的工具,能在window、macos、linux系统上运行。
安装方式直接官网上下载对应版本傻瓜式安装即可。
下面简单说一下三种设备如何抓包:
一、PC端抓包
1.安装Charles完成后打开,首先需要安装系统证书,在菜单栏Help-》SSL Proxying-》Install Charles Root Certificate选项,直接跳转到macos系统证书安装界面,选中Charles证书并信任证书。
2.开启菜单栏里macOS proxy选项。
3.开启后毫无意外的话,Charles界面就抓取到了电脑端所有的网络请求,就是这么简单。
4.在没有开启SSL Proxying时,只是抓取了数据请求包体,但还没有进行SSL解析,如果需要查看包体内容,需要在菜单栏Proxy——》SSL Proxying settings中开启抓取所需的域名,选择“Add”添加可以输入通配符“ * ”星号去匹配所有域名,再次请求所要解析的域名,即可查看接口传递的数据信息。
二、iOS端
抓取iOS端数据,相比于PC端,只需要多做一个代理,然后在手机上安装证书即可
1.先查看本机IP是多少,这个可以使用命令行执行查询本机IP命令,也可以在Charles菜单栏Help选择Local Addresses选项查看。
2.查看设置的端口号,在Charles菜单栏Proxy-》proxy Settings选项中可以看到,备注:未修改端口号是默认为8888)
3.现在本机IP和端口号都知道了,到iOS手机设备上,浏览器访问:chls.pro/ssl 或者访问你的本机IP+端口号,如我的:192.168.42.21:8888,忘记了访问链接,也可以到Charles菜单栏上的Help——》SSL Proxying-》install Charles Root Certificate on a Mobile Device or Remote Browser选项中查看,上面都有写。
- 访问链接正确后,iOS设备上会提示需要安装配置描述文件,选择允许,然后到手机设置-》通用-》VPN于设备管理中,可以看到刚刚下载下来的描述文件,选择安装,在iOS10系统以上还需要通用-》关于手机-》证书信任设置中信任刚刚安装成功的描述文件。备注:(安装时需要先完成手机密码设置,才能安装成功)
5.这样就设置好了,手机上访问如百度网站,就可抓取到百度发起的请求数据,跟PC端一致,不再描述。
三、Android端
抓取Android端的网络数据包,也是跟iOS一样,设置一下代理即可,需要注意的是,部分机型在安装证书时会识别不成功,下面来看看处理方法。
1.本机IP和端口号参考iOS端,访问在浏览器上访问 chls.pro/ssl 或者访问你的本机IP+端口号,访问成功后,如果没有看到下载的证书文件,可以在浏览器的下载历史上查看。直接点击下载的描述文件会提示无法安装CA证书,需要手动安装证书
2.Android各个品牌机型安装的证书方法不一致,一般都是进入手机Wi-Fi-》高级设置上安装证书,选择刚刚下载好的证书即可。(备注:Android端安装证书时也是需要先设置手机锁屏密码。证书安装完成后,发起请求,即可在Charles界面上查看所有请求的数据包。
如三星手机:
3.还有一个方法,访问chls.pro/ssl 或者访问你的本机IP+端口号后,把下载的证书文件后缀.pem格式重命名换成.crt格式,这样安装,可以避免部分机型浏览器下载证书时,格式错误,导致证书无法安装成功。
四、总结
使用charles抓包时,不可避免的就是要安装证书,各个设备安装的证书都不一样,只要完成Charles的证书安装,就完成一大半,可以很方便的抓取网络请求包,查看所需要的请求数据。