证书管理与安装
用代理抓 HTTPS,第一步是让设备和软件信任本工具的根证书——不信任就会 TLS 报错、只能看到乱码密文。本篇带你一步步把证书装好:本机一键装、手机扫码装,以及那些「装了系统证书还是不认」的程序(Java / Python / curl 等)怎么用全覆盖补上。装一次,之后所有会话都能解密。
一、什么时候用
只要走代理抓 HTTPS、想看到明文,就要先装证书。典型场景:
- 第一次用代理抓 HTTPS 前:本机还没信任根证书,先装一次。见 代理抓包。
- 手机抓包:手机要单独信任一次根证书,扫码装最快。见 iOS 抓包、Android 抓包。
- Java / Python / curl / wget 等解不了:这些程序只认自己那份证书清单,装了系统证书照样解不开——用证书全覆盖把证书直接装进它们。
如果你走的是 指定程序抓包、应用层抓包 这类不用代理的抓法,通常不用装证书,可以跳过本篇。
二、前置条件
- 已安装并启动 TraceEagle(第一次启动同意系统权限即可)。
- 打开证书管理页面(证书相关操作都在这里:本机信任状态、下载、手机二维码、全覆盖、客户端证书)。
- 手机扫码装证书时,手机和电脑在同一局域网。
三、分步操作
下面按场景编号,用哪个照着做哪个即可。A 是所有人都要做的第一步。
A. 本机一键:安装到本机并信任
抓本机流量,先让本机信任根证书。
- 打开证书管理,看本机信任状态——显示「未信任」就继续下一步,已「已信任」可跳过。
- 点 「安装到本机并信任」,按系统提示确认(可能要输入一次开机密码)。
- 状态变为 「已信任」 即完成。装一次即可,之后所有会话都能解密 HTTPS。
需要手动分发、或给别的工具用,可在同页 「下载根证书」,提供多种格式,按需取用。
B. 手机扫码安装
手机要单独信任一次根证书。根证书全局通用,每台设备只装一次。
- 在证书管理页找到手机扫码安装,工具会为局域网内每个可用地址生成二维码。
- 用手机相机扫码,打开安装页,按下面对应系统装好:
- iOS:先按页面提示下载描述文件,再去
设置 → 通用 → VPN 与设备管理里安装描述文件;装完还要去设置 → 通用 → 关于本机 → 证书信任设置里打开对该根证书的完全信任(这一步不做,iOS 依然解不了)。详见 iOS 抓包。 - Android(普通设备):打开安装页,把根证书装为用户证书 / CA 证书即可。注意部分 App 只认系统证书、不认用户证书,遇到解不了见 Android 抓包]。
- Android(已 root 设备):可直接把根证书装入系统证书库,省去手动导入,兼容性最好。
- iOS:先按页面提示下载描述文件,再去
- 装完回到 App 里产生一次 HTTPS 请求,确认能解密。
C. 证书全覆盖:连「不认系统证书」的程序也能解
有些程序装了系统证书也照样解不了——它们只认自己那一份证书清单。全覆盖能把根证书直接装进这些程序:
- 在证书管理页打开证书全覆盖。工具会自动发现本机上这类软件(包括正在运行的),逐个列出并标注「已装 / 未装」,常见的有:
- Java 程序
- Python 程序
- curl / wget / Ruby / PHP / git 等命令行与脚本工具
- Firefox / Thunderbird 等软件
- 对未装的项点安装,把根证书装进去;想撤销的点对应的移除即可。
- 自动发现漏掉的(装在非常规路径、或工具没识别到的),用手填路径补上,再安装。
这正是普通抓包工具的老大难:证书装了、程序却还是解不开。全覆盖专治这一点。
D. 客户端证书导入
如果对方站点要求客户端证书(双向认证),而你手里正好有:
- 打开客户端 / 域名证书页。
- 导入你的客户端证书(如有密码一并填入)。
- 之后抓这些站点时即可正常握手、正常解密。
四、验证:确认装好并能解密
- 本机:回到证书管理页,本机信任状态显示 「已信任」。
- 能解密:走代理产生一条 HTTPS 请求,在请求列表点开详情,TLS 显示「已解密」、响应是可读明文(如 JSON)而非乱码。
- 全覆盖 / 手机:对应程序或手机 App 的 HTTPS 请求同样能看到明文。
怎么读详情、切视图、解码,见 数据查看与解码。
五、装了还解不了?逐条排查
| 现象 | 多半是 | 怎么办 |
|---|---|---|
| 本机装了系统证书,某程序还是只有密文 | 这程序只认自己的证书清单(典型是 Java / Python / curl / Firefox) | 用 C. 证书全覆盖 把证书装进它;自动发现没列出的用手填路径补 |
| 手机装了证书,App 还是抓不到明文 | App 只认系统证书、不认用户证书,或做了证书绑定(Pinning) | Android 用 root 设备装进系统库;仍不行多半是绑定,见 解除证书绑定 |
| iOS 装了描述文件仍报错 | 漏了「证书信任设置」里的完全信任开关 | 去 设置 → 通用 → 关于本机 → 证书信任设置 打开对该根证书的信任,见 iOS 抓包 |
| 全覆盖里某程序找不到 | 装在非常规路径,自动发现没覆盖到 | 在全覆盖页用手填路径指向它,再安装 |
| 装好也解不了、且抓到的是它自研加密 | 目标不走标准 TLS,证书解决不了 | 改用 应用层抓包 从程序内部取明文 |
下一步
- 装完证书就可以正式开抓:回到 代理抓包。
- 手机端完整流程:见 iOS 抓包、Android 抓包。
- 证书装了、App 却做了证书绑定导致抓不到:见 解除证书绑定。
- 抓到之后怎么读、怎么解码:见 数据查看与解码。