很多 iOS 抓包问题,表面看是抓不到包,但真正定位下来,问题往往出在对 HTTPS 协议本身的理解不够细。
我第一次意识到这一点,是在一次接口调试中,代理已配、证书已装、App 正常联网,但抓包工具里什么都没有。
当时我还在反复检查证书是否信任,后来才发现,请求根本没有进入我以为的那次 TLS 会话。
在抓包之前,我现在都会先画一条简单的路径:
如果你抓不到 HTTPS 内容,通常不是HTTPS 被加密了,而是你没抓到在 TLS 的位置上的包。
在 Windows 或 Mac 上,我会先用 Wireshark 抓一小段流量,只看三个点:
这一步不解密内容,只确认: TLS 有没有真正跑起来。
如果这里都没有,说明问题不在证书,而在网络路径。
在 iOS 上,HTTPS 是否走系统代理,取决于几个现实条件:
这也是为什么同一个 App:
在可以走系统代理的场景下,代理抓包依然是效率最高的方式。
无论是 Charles、Proxyman,还是抓包大师的 HTTPS 代理模式,本质都是:
我更关心三个结果:
抓包大师在这一步的优势,是减少了证书和代理配置的手动步骤,但判断逻辑并没有变化。
如果在这里 HTTPS 请求能完整出现,问题基本已经解决一半。
有时你会看到一个很“迷惑”的现象:
这类问题,往往和 TLS 双向验证、Pin 校验、应用层二次加密 有关。
这时候,再纠结代理已经没有意义。
在 iOS 上,我会切换到设备级的数据流抓包。
抓包大师的数据流抓包模式,不依赖证书,也不要求代理:
这一层的目标只有一个: 确认通信是否真实存在,以及发生在什么时间点。
当你已经确认:
但业务仍异常,那就不再是“抓包问题”,而是客户端逻辑问题。
在代理可用的前提下,我通常会用拦截器做一件事, 人为制造一个异常响应。
例如:
抓包大师的拦截器支持用 JS 直接改请求和响应,这一步的价值不在“修改数据”,而在于验证客户端对 TLS 之后数据的处理逻辑。

HTTPS 抓包调试并不是某个工具的技巧,而是对一整条流程的判断能力:
工具只是方向不同,解决的都是不同阶段的问题。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047459/viewspace-3108036/ ,如需转载,请注明出处,否则将追究法律责任。