教程:使用Charles抓取https的数据包

需求描述

在开发过程中,线上APP的http请求,多是https的。这给我们线上调试工作造成了不小的困扰。看到的都是类似下图的乱码:
教程:使用Charles抓取https的数据包
接下来,我教大家如何使用Charles,抓取明文的https数据包。
亲测有效。

保证手机和电脑处于同一个网络

在Charles端进行SSL Proxying 设置

Proxy -> SSL Proxying Settings -> SSL Proxying -> Add
教程:使用Charles抓取https的数据包教程:使用Charles抓取https的数据包

  • Host:为需要过滤的域名地址,*表示不过滤
  • Port:固定为443,*表示任意端口

查看电脑IP

Charles -->Help–> Local Ip Address
教程:使用Charles抓取https的数据包

手机添加代理

教程:使用Charles抓取https的数据包
教程:使用Charles抓取https的数据包

电脑端安装ssl证书

教程:使用Charles抓取https的数据包
添加完毕后,在电脑端可以看到已经安装的证书:
教程:使用Charles抓取https的数据包

保存一份证书到电脑端

教程:使用Charles抓取https的数据包
文件名为:charles-ssl-proxying-certificate.pem
教程:使用Charles抓取https的数据包

发送证书到手机端

可以直接使用数据线,或者使用传输工具,如AirDroid

手机端安装证书

记得凭据用途–选择“WLAN”
教程:使用Charles抓取https的数据包

查看抓包数据

教程:使用Charles抓取https的数据包
教程:使用Charles抓取https的数据包
我们看到,https的接口返回的响应数据,已经明文展示出来了。

环境说明

  • 手机型号:坚果Pro2
  • Android版本:V7.1.1
  • PC OS:macOS High Sierra V10.13.4
  • Charles版本:V4.1.1