Charles抓包之HTTPS抓包配置
前言
由于工作中经常需要配置客户端开发人员对接接口,有时候对接地不太顺利,因此需要经常性地对公司 APP 进行抓包看请求,找出具体的原因。
在公司中开发使用的 Windows 台式电脑,抓包工具选择了 Fiddler,这个工具刚开始学会抓包的时候,觉得真乃神器!在经过几次开发电脑升级之后,重新安装 Fiddler 后,和之前的设置相同,但是死活抓不了包,或者抓不了 Https 的包, 总之总会出现各种奇怪的问题,如果出了问题,简直让人抓狂!
去年年底,给自己换了一台 MBP,日常学习中也需要用到抓包,为了和公司中的工具保持一致,想下载 Fiddler 的 Mac 版,结果并没有。于是下载了 Charles (花瓶),用了花瓶之后,发现其比 Fiddler 更加好用~
在一次受够了 Fiddler 的莫名其妙地抓不了 Https,怒卸载之,寻寻觅觅,找到了 Win 版的 Charles 😊(之前还以为没有 Win 版呢),经过简单配置,开始了愉快的抓包~
抓包准备之 Charles 下载以及激活
下载安装完,在开始菜单中找到 Charles 打开,提示有 30 天的试用期。如果 30 天到期的话,可以选择购买一个 license ,30 刀。如果不想买,可以参考此文继续试用,Charles Proxy使用笔记(文内有好礼)。选择 Help-Registered 填入 license 即可激活。
抓包准备之 Charles 配置 HTTPS 抓包基础配置
如今 Https 大行其道,苹果更是强制要求 APP 通信必须要使用 Https 协议,如果只是抓普通的 HTTP 请求,无需复杂配置即可抓包,这也表明了 HTTP 的安全性很低。
Charles 默认不对 HTTPS 的请求开启抓包,所以,需要先开启所有 HTTPS 请求的抓包。
进入菜单 Proxy-SSL Proxying Settings
选择开启 SSL Proxy,并 Add 一条 Location 记录,Host 填写 *
,代表匹配所有网址,端口 Port,填写443,即 HTTPS 端口。 选择保存。
基础配置到此就完成了,以下本文按照两方面来描述,Charles 抓 HTTPS。
Charles 抓 Windows 上的 HTTPS 请求
进入 Help 中,选择 SSL Proxying 设置,安装根证书
注意这一步一定要将证书存储到 受信任的根证书颁发机构,否则抓包 HTTPS 会提示证书不受信任!!!嗯,搞了好久,血一般的教训!
安装期间会有安全警告,选择是即可。
访问 https://www.baidu.com后,查看 Charles,已经可以看到 Https 请求下的数据了。
Charles 抓 APP 的 HTTPS 请求
想要 Charles 抓 HTTPS 的数据包,需要设置代理并安装 Charles 的中间 SSL 证书。
选择 Help-SSL Proxying
点击会弹出对话框如下
按照提示,将手机连入电脑同一个网络,WIFI 处设置代理,代理的地址以及端口按照对话框中进行设置。
设置成功返回之后,此时电脑上 Charles 会自动弹出提醒,提示是否允许请求代理通过,选择 Allow
允许即可。
连上代理之后,使用系统自带浏览器( iPhone 使用 Safari)访问地址 chls.pro/ssl
,如果是 iPhone 会自动弹出安装描述文件,选择安装输入密码后无视警告安装即可。安卓手机进入会弹出安装证书页面,类型选择 WLAN,证书名称随意填写(小米手机不会弹出安装证书页面,而是将证书下载到根目录的 Downloads 下,进入小米手机设置-更多设置-系统安全->从存储设备安装,找到刚才下载的证书进行安装即可)。
手机访问 https://m.baidu.com
,查看 Charles ,发现此时已经可以拿到 HTTPS 数据内容了,如果没设置成功,里面都将会是 unknown。
常见问题
-
开启 SSL Proxy 代理后,提示证书不受信任或者无效,PC 端一般都是因为证书放错了位置。
-
在 IOS11上测试时,抓包显示unknown 需要进入通用-关于本机-证书信任设置,将新增的证书进行开启操作。
最后说几句
善用搜索引擎,因为你遇到的问题肯定有别人都遇到过了,如果你搜不到,肯定是你的搜索姿势不对~
实在有问题解决不了,可以找我哟!