一. 设置手机抓包
第一步:在charles里设置允许手机联网的权限,并设置接入接口
在Charles的菜单栏上选择"Proxy"->"Proxy Settings",填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口),并且勾上”Enable transparent HTTP proxying”,这样就完成了在Charles上的设置
在"Help"->"Local IP Address"中可以查看本机的ip地址,当然也可以在cmd中通过ipconfig查看
第二步:设置手机代理
以荣耀8为例,选中wifi名字,右击,选择修改网络
显示高级选项,输入服务器主机名和服务器端口,点击保存
二. 为避免(PC/Phone)抓取HTTPS失败和乱码,需要下载安装SSL/HTTPS证书
==========================电脑端=============================
第一步:电脑安装SSL证书
选择 "Help" -> "SSL Proxying" -> "Install Charles Root Certificate",如果设置了安全防护,会ranging输入系统的帐号密码
这时开始安装charles证书,一路点击下一步即可
第二步:配置SSL的抓取域名
找到"Proxy"->"SSL Proxying Settings...",点击
然后选中启用SSL代理(Enable SSL Proxying),charles的Location配置都是支持通配符的,因此在Host里设置一个"*"就可以,port不写
如果需要配置某个指定域名,也是在Host里填写,配置指定域名时,一般Port是443,这样就可以抓取到到HTTPS的内容了
==========================手机端=============================
第一步:手机安装SSL证书
进入"Help"->"Install Charles Root Certificate on a Mobile Device or remote Browser",点击
这时会有一个弹框,意思是要给手机设置代理,内容是192.168.1.103:8888,然后用手机浏览器打开chls.pro/ssl
点击立即下载
在手机设置->高级设置->安全里开启未知来源应用下载和外部来源应用安装
在手机文件管理里找到证书,将后缀pem改成crt,点击安装即可
这时发现手机上的HTTPS也能抓取下来了
参考文章
https://zhubangbang.com/charles-https-packet-capture-method-and-principle.html