解除证书绑定(去 Pin)
有些 App 做了证书绑定 :证书装好了、代理也开了,它却认死自己内置的那张证书,一见到代理证书就直接报错、拒连 。本篇教你选中这样的 App,一键解除它的证书校验,让它继续信任代理证书、把 HTTPS 正常解密出来。
一、什么时候用这种抓法
出现下面这些情况,就该来这一步:
- 证书按 证书安装 装好了,代理也配对了,可某个 App 就是连不上网 / 一直报网络错误。
- 换别的 App 都好好的,单单这一个开代理就断网------多半是它做了证书绑定。
- 想抓这个 App,但它对代理证书「不信任」,握手直接被它掐断,请求列表里连密文都看不到。
一句话分清 :解除证书绑定只是让 App「愿意信任代理证书」,本身不负责解密,解密仍由代理完成。如果你要的是「直接从程序内部把明文取出来」,那是另一件事,见 应用层抓包。
二、前置条件
- 已经装好并信任了代理证书------没装的先看 证书安装。
- 已经在跑一个代理会话:解除证书绑定是在代理抓包的基础上做的,先能抓到别的 App,再来处理这个顽固的。参见 代理抓包。
- 按目标准备好对应环境:
- 本机程序:直接就能列出、选中。
- iOS App:设备已就绪,App 为可重签名的类型;不清楚怎么连设备看 iOS抓包。
- Android App:设备已 root;连设备与抓法见 Android抓包。
三、分步操作
- 打开「解除证书绑定(去 Pin)」面板,按目标切到对应标签页:本机程序 / iOS App / Android App。
- 选中要处理的目标:
- 本机程序 :从进程列表里勾选,可按进程名或 PID 过滤,支持多选。
- iOS App :先选设备,再从 App 列表里选;也可以手填 bundle id。
- Android App :先选设备,再从 App 列表里选;也可以手填包名 / 进程名 / PID。
- 按需要打开两个开关:
- 自动处理子进程(本机):有些应用是由子进程在收发网络请求,打开它一并处理,避免漏抓。多进程桌面应用建议保持开启。
- 重启目标 :先把 App 重启一次再处理,这样连它启动初期发出的请求也能覆盖到。想抓「一打开就发」的那几条,就勾上。
- 点开始处理。面板会实时反馈处理结果 :成功会告诉你处理了几个目标 / 进程;如果这个 App 用了不常见的网络组件、暂不支持,会明确提示你,而不是让你干等。

四、验证:确认它现在能出明文了
处理完,回到代理会话让这个 App 再发一次请求(刷新页面、重新进某个功能):
- 原本报错 / 断网的 App,现在能正常联网了:不再一开代理就连不上。
- 请求列表里出现了它的流量:请求行、请求头、body 都在。
- TLS 显示「已解密」:响应是可读明文(如 JSON),不再是握手就被它掐断、什么都看不到的状态。
如果流量出来了、但内容仍是密文(不是握手被拒,而是解不开),那通常不是证书绑定的问题,改从程序内部取明文,见 应用层抓包。
五、处理不了 / 还是连不上?逐条排查
| 现象 | 多半是 | 怎么办 |
|---|---|---|
| 面板提示这个 App 暂不支持 | 它用了不常见的网络组件 | 换个思路,从程序内部取明文:改用 应用层抓包 |
| 处理成功,但只抓到它启动之后的请求,最开头几条没抓到 | 处理时 App 已经跑起来一阵了 | 勾上重启目标再处理一次,覆盖启动初期的请求 |
| 桌面应用处理了,仍有一部分流量抓不到 | 它的网络请求是由子进程在发 | 打开自动处理子进程再处理 |
| Go / Rust 程序,或桌面 Java 程序,去 Pin 不起作用 | 这类程序通常用不着去 Pin | 它们多是读系统证书的------直接把证书装进系统信任库即可,见 证书安装 |
| iOS App 列不出来 / 选不中 | 设备没连好,或 App 不是可重签名类型 | 先按 iOS抓包 把设备与环境准备好,或手填 bundle id |
| Android App 列不出来 | 设备未 root | 按 Android抓包 准备好已 root 的设备 |
下一步
- 现在能解密了,怎么读这些请求、怎么切视图、怎么解码:见 数据查看与解码。
- 抓 iOS / Android 上具体某个 App 的完整流程:见 iOS抓包、Android抓包。
- 想直接从程序内部取明文(不走证书这条路):见 应用层抓包。
- 遇到私有 / 自研协议、想让工具认得它:见 自定义协议解码。