在 iPhone 上看 HTTPS 流量,抓包工具都需要一张 iOS 信任的 CA 根证书。只装描述文件还不够,还要在一个很容易漏掉的设置页里开启信任。下面以 HTTPS Capture 为例讲清楚这两步,并说明怎样让证书只属于你这台设备,以及 HTTPS 还是解不开时该怎么排查。
为什么需要证书
HTTPS 在 App 和服务器之间是加密的。为了让你看到明文,HTTPS Capture 在本机充当中间人代理,为每个网站出示一张由自己的 CA 签发的证书。只有当你安装并完全信任这个 CA,iOS 才会接受这些证书。否则 App 会拒绝连接,你只能看到加密隧道(CONNECT 请求),看不到真实的 URL 和内容。
第一步:下载证书描述文件
- 打开 HTTPS Capture,在抓包页点 MitM。
- 确认第一步 启用 VPN 已完成。
- 在 安装证书 下点 下载证书描述文件。Safari 会询问是否下载配置描述文件,点 允许。
第二步:安装描述文件
- 打开系统 设置,顶部会出现 已下载描述文件。如果没有,到 通用 → VPN 与设备管理 里找。
- 点 HTTPS Capture 描述文件,点 安装,输入锁屏密码。
第三步:开启完全信任(最容易漏掉)
- 进入 设置 → 通用 → 关于本机。
- 滑到最底部,点 证书信任设置。
- 打开 HTTPS Capture 旁边的开关并确认。
App 里的 打开信任设置 按钮可以帮你跳到附近。回到 HTTPS Capture,配置进度应显示三步全部完成。
让证书只属于你的 iPhone(推荐)
默认 CA 是随 App 一起分发的。为了更安全,可以在 Certificate Management(证书管理) 区域点 重新生成 CA,App 会在本机生成一张新的 CA,私钥不会离开手机。重新生成后旧证书立即失效:先删除旧描述文件,再用新证书重复第 1 到 3 步。
证书管理区还可以:
- 导入自定义 CA:使用你自己的 CA,支持 PKCS#12(
.p12/.pfx)或 PEM 文件,比如测试设备上已经信任的公司 CA。仅支持 RSA 密钥。 - 导出 CA 证书:导出为
.pem或.cer,比如在使用 局域网抓包 时装到其他设备上。 - 导出 PKCS#12:把证书和私钥一起导出,可以设置密码保护。
- 重置为默认 CA:恢复内置证书。
HTTPS 还是解不开?
- 没开信任开关:这是最常见的原因,回到证书信任设置再确认一遍。
- 信任的是旧证书:重新生成或导入 CA 之后,旧描述文件已经对不上,删掉后信任新的。
- App 使用了证书固定(SSL Pinning):部分银行和社交 App 只认自己的证书。HTTPS Capture 检测到后会让该域名直接通过、不解密,保证 App 正常使用。
- Apple 系统域名:默认不抓。可以在设置里开启抓取 Apple 域名,但很多 Apple 服务本身就有证书固定。
更多情况见 iPhone 抓包抓不到 HTTPS 的常见原因。
不用时记得删除证书
受信任的根证书权限很大。不再抓包时,到 设置 → 通用 → VPN 与设备管理 删除描述文件,对应的信任设置也会一起消失。
准备好试试了吗?
HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone
App Store 免费下载