🕸捕获与改写HTTPS请求
前言
本文站在 macOS 用户的角度下,分享一下对 HTTPS 进行请求拦截、对响应进行修改的经验。
要注意的是,本文介绍的工具虽然一定程度上对 Windows 用户也适用 ,但并非所有工具都是免费的。
Proxyman
Proxyman可以免费使用,在安卓/IOS手机上也有相应的解决方案,如果只是监测请求,查看 API 请求头及响应体,这个足够了。
Charles
Charles 是收费的,而且要安装 Java 环境,但它厉害的地方在于,可以改写网络(如修改响应头),因此值得一买。
唯一的缺点就是,官方文档不太好友,界面有一定上手难度,好在文本已有图文并茂的说明。
安装与设置
- 进入官网下载
- 开启 macOS 代理
- 安装SSL证书
- 点击安装后,在界面搜索 Charles,找到刚刚安装的证书,点击 总是信任
- SSL代理设置
改写网络
下面的例子展示了如何改写 HTTPS 请求的响应头。
- 点击左上角,Structure
- 找到想改写的请求,右键,点击 Breakpoints
- Breakpoints Settings
- 双击编辑详情
- 取消 Request 的勾选
- 刷新页面,请求将会被拦截,处理 Pending 状态
- 此时可以编辑响应
- 最终,客户端收到的是被改写后的响应
参考
- https://deliveroo.engineering/2018/12/04/how-to-use-charles-proxy-to-rewrite-https-traffic-for-web-applications.html
- how-to-configure-ssl-certificates-with-charles-web-proxy-and-the-latest-android
- charles-proxy-not-working-with-chrome
- proxyman使用教程
- https://www.moesif.com
- https://www.moesif.com/blog/technical/api-tools/The-Best-Free-REST-API-Debugging-Tools-For-Developing-APIs