抓包时证书为什么总要装
抓包列表里一片「SSL 握手失败」、HTTPS 请求点开全是密文——十有八九是证书的问题。本篇讲清中间人代理的工作逻辑:证书为什么必须装、装哪一张、装完为什么还有个别应用解析不了。相关文档:手机抓包调试从哪开始 · 协同模式怎么把手机流量转到电脑 · 手机抓包工具怎么选
一、HTTPS 加密与中间人代理
HTTPS 的内容是加密的,抓包工具要看明文,就得站在中间:用自己的 CA 根证书替真实服务器重新签一份证书给应用看,应用信任这张根证书,握手才能继续,明文才会出现在抓包列表里。
所以判据很直接:只看 HTTP 明文可以不装证书;要看 HTTPS 内容,装证书这一步绕不开。
二、装哪一张
每台设备生成的根证书都不一样,装错张数等于没装:
- 手机端独立抓包 → 装手机端生成的根证书;
- 协同模式连电脑 → 电脑端的根证书会自动同步到手机,省掉手动传输,但安装仍然要在手机上完成。
三、用户证书与系统证书
Android 把证书分两个目录:用户证书不需要 Root,日常装这里就够;系统证书覆盖面更大,但需要 Root 才能写入。Android 7.0 起,应用默认不信任用户目录的 CA,这是「证书装了、个别应用还是解析不出」的第一个原因。
第二个原因是部分应用内置了自己的证书库、或者启用了证书固定(SSL Pinning),这类属于应用侧的安全策略,抓包工具侧没有通用解法。
四、装好之后怎么确认
打开调试开关,用手机浏览器访问一个网页:列表里出现这条请求、点开能看到明文,证书就算生效了。应用内的证书管理页通常也会标出安装状态,没装好会给出红色提示与对应平台的安装指引。
想上手这套流程,可以从 Reqable 这类把「生成证书 → 指引安装 → 解析明文」做成一条链的工具开始,它的安卓端能力与界面整理在 Reqable 安卓端介绍站,装好证书再抓包,HTTPS 的请求内容一眼就能看懂。