使用普通的抓包工具比如 tcpdump 无法抓取到加密过的 HTTPS 协议的数据包。但是 Charles 经过配置,可以抓取并分析 HTTPS 协议的数据包,下面的内容将会具体讲述 Charles 如何配置以及如何抓取 HTTP、HTTPS 数据包。

环境安装

需要安装 Charles,参考章节常用代理工具中的 Charles 部分。

配置过程

  1. 配置代理,Charles 可以抓取移动端上的数据,需要计算机和移动端在同一网段(同一 wifi)。打开 Proxy->Proxy Settings,填入代理端口 8888,勾上 Enable transparent HTTP proxying(在如果想要抓取到 https 的数据包,还需要进行后面的操作):
  2. 获取证书:在浏览器访问“chls.pro/ssl” 下载证书,并在 Proxy->SSL Proxying Settings->SSL Proxying,在 Include 中点击 Add,并在 host 处填写*,同时点击 Enable SSL Proxying。然后选择 OK:

tcpdump docker抓包命令 tcpdump抓包https_tcpdump docker抓包命令

  1. 浏览器安装证书:点击下载好的证书,直接安装。
  2. 信任证书:打开证书(Mac 系统为钥匙串访问)->点击证书->双击名称含有 charles 的选项->点击信任->选择始终信任。若 windows 系统证书信任配置,可参考下图:

tcpdump docker抓包命令 tcpdump抓包https_https_02

  1. 移动端配置证书:在移动端浏览器打开chls.pro/ssl,直接安装即可。

tcpdump docker抓包命令 tcpdump抓包https_https_03

注意:Android 6.0 默认用户级别证书,7.0 以上需要修改 apk 包属性

经过如上的操作,即可成功抓取到 http/https 的请求数据包。