背景
因为开发调试和查看线上bug,移动端的接口不好查,所以安装了一个抓包工具。
为什么没选择fiddler,其实上一份工作一直用的fiddler,以前都是开包即用,可是在安装和配置过程中,Https请求一直 tunnel to 443,即使安装和信任了证书一样无法使用,所以换成了charles,我变心了,大哭
准备工作
- 安装系统:windows
- 抓包工具:charles
原理
charles在windows系统下会自动开启代理配置(默认是http/https 127.0.0.1:8888),所有的http和https请求会被8888这个端口代理,charles等于是一个中转。手机上需要连上同一个局域网,然后配置网络代理,手机请求通过局域网转发到PC的charles
配置
因为PC chrome还用了其他的VPN,所以我下载了一个chrome extension (Proxy SwitchyOmega),导致了chrome的代理被这个插件管理了,所以需要在插件中进行配置。
插件代理配置
此时http/https请求都会被转发到8888端口。
chrome代理配置(没有插件的情况)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YRhA7t1Y-1635244981238)(https://i.loli.net/2021/10/26/ZmsVY4kdL1raCgu.png)]
charles开启时,windows系统下会被默认开启代理,代理的内容跟上面的插件是一样的。
IOS代理配置
网络请求会被转发到配置服务器的8888端口
HTTPS
charles抓到的https请求都是加密后的内容,如果需要解析https(Decrypt https)就要安装charles提供的证书。
这一步非常重用,还需要在charles > proxy > SSL Proxying Settings > 勾选 Enable SSL Proxying > 再加添include /
chrome
- 开启charles,SSL Proxying > 保存根证书
- 在chrome的高级设置 > 打开证书管理 > 选择受新人的根证书发布机构 > 导入刚保存的根证书
ios
- iphone网络设置代理
- https://chls.pro/ssl 下载证书
- 安装证书:设置 > 通用 > 描述文件与设备管理 > 选择证书并安装
- 信任证书:设置 > 通用 > 关于本机 > 证书信任设置 > 信任证书