mitmproxy 交互式 HTTPS 代理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/mitmproxy-interactive-https-proxy-debugging-security。
技能介绍
你要解决的具体问题
排查线上问题时,你经常需要知道:某个 POST 请求的 body 究竟长什么样?上游返回的响应头里有没有 Cache-Control?客户端在 HTTP/2 多路复用下到底发出了哪几个 stream?当流量被 TLS 加密后,这些问题单靠浏览器面板回答不了,你需要一个能插入握手中间的拦截代理。
这个技能如何工作
mitmproxy 提供的 mitmdump 组件以命令行方式运行,适合放进脚本或 CI 流程中,同时项目自带基于 Web 的界面用于查看与分析捕获到的流量。核心能力包括:
- 拦截并记录 HTTP/1、HTTP/2、HTTP/3 以及 WebSockets 流量
- 支持反向代理模式,把请求统一转发到指定的上游目标
- 查看、修改捕获到的流量,并在调整后重放,观察服务端行为变化
典型使用路径是:以反向代理模式指向目标站点启动代理,让被测客户端走这个代理入口,然后在 Web 界面里逐条筛选请求,对需要验证的请求改完内容再重放。
适用边界与注意点
- 若服务端做了严格的证书校验,中间人角色需要你额外处理 TLS 信任,否则链路会在校验环节中断
- 修改与重放会改变真实流量,建议在隔离环境操作,避免对关键线上服务直接重放
- 文档与上游同步,动手前先查阅官方文档确认当前版本的行为细节
截图预览
使用场景
- 排查线上报错,需要捕获并重放特定请求,观察服务端返回的变化
- 验证接口契约,需要查看修改后的 HTTP/HTTPS 请求体并重放验证
- 分析 WebSocket 长连接,需要查看并修改连接中的交互数据
- 配置反向代理,将客户端请求统一转发到指定上游进行测试
适合人员
- 后端工程师,需要重放修改过的请求以定位接口报错
- 安全工程师,需要对加密流量做中间人抓包与篡改测试
- 运维工程师,需要配置反向代理统一验证线上请求
- 前端工程师,需要分析 WebSocket 交互是否符合预期