Reqable 中文文档 下载 App

抓 HTTPS 流量为什么必须先装 CA 根证书

很多人第一次用抓包工具都会遇到同一个困惑:HTTP 流量看得见,HTTPS 请求却是一堆 CONNECT 或者直接报 SSL 握手失败。原因在证书上。

中间人原理一句话

Reqable 用的是经典的 MITM(中间人)方式分析 HTTPS 流量。流程是这样的:

  1. 客户端把请求发给 Reqable 的代理服务器(即「中间人」);
  2. 中间人需要冒充目标服务器与客户端完成 SSL 握手,为此它要重签远程服务器的 SSL 证书;
  3. 客户端只信任自己证书管理中心里的 CA,所以必须把 Reqable 的根证书(CA 根证书)安装到客户端本地的证书管理中心,握手才能通过。

没有安装 CA 根证书时,客户端会拒绝这个「冒牌服务器」,表现就是 SSL握手失败 错误。

装在哪一端

关键判断:看流量的发起方是谁。

如果没有流量分析需求(只用 API 测试功能),可以完全跳过这一步。

这个证书安全吗

Reqable 为每台设备自动生成完全不同的 CA 根证书,并使用随机的证书密钥,不存在一把通用私钥被第三方利用的风险。如果你已有自定义的 CA 根证书,也可以通过「证书」菜单 →「根证书管理」→「导入根证书(.p12)」导入自己的证书。

另外一个实用细节:移动端 App 初始化时选择协同模式并扫码连接电脑后,会自动同步电脑端的 CA 根证书到手机,两台设备共用同一个证书,省去手机上单独下载安装的步骤(见 扫码连接协同设备)。

装了证书就万事大吉吗

不是。有些特殊情况即使装了证书也无法解析 HTTPS,常见的有:应用启用了固定证书(SSL Pinning)、双向验证要求客户端上传证书、应用内置自己的 CA 验证而不走系统证书库。这些进阶问题在 SSL 握手失败六大原因 里逐个展开。