本文将指引你如何用charles和代理工具在移动设备上抓取http(https)请求和websocket(wss)。文中使用的设备为Mac和一台安卓手机,charles版本为4.6.1
在charles上进行proxy(代理)配置
-
点击齿轮按钮
-
选择「Proxy Settings」
-
按下图进行设置,点击ok按钮保存
安装证书
-
检查需要抓包的设备,确保它与你的电脑连接的是同一个wifi,保证2台设备处于同一个局域网中。
-
在电脑端菜单栏选择 Help→ SSL Proxying → Install Charles Root Certificate
-
在弹出的钥匙串弹框中选择「系统」,点击「添加」按钮。
-
在钥匙串应用的右上角输入「charles」搜索刚才添加的证书
-
双击该证书,打开证书详情窗口,在窗口中设置证书为始终信任
-
在菜单栏选择 Proxy → SSL Proxying Settings
-
在出现的窗口中选择「Add」
-
配置Host为*,Port为443,点击「OK」保存
检查证书是否生效
-
在菜单栏 Proxy 中开启 macOS Proxy
-
打开浏览器访问 www.baidu.com/,在charles中查…
将证书配置到手机上
-
菜单栏中选择 Help → SSL Proxying → Export Charles Root Certificate and Private Key
-
在弹框中设置密码,设置的简单点即可,此处我们输入12345678
-
之后会生成出一个.p12证书文件,将证书发送到手机上,并进行安装。此处建议使用微信文件传输助手,发送到手机上后直接点击用其他应用打开即可。输入刚刚设置的密码,点击确定,安装成功
配置手机代理
手机上下载一个代理工具App(需支持Socks5)
配置代理工具将手机流量代理到电脑上,端口号为文章开头设置的SOCKS Proxy的端口号(8889),如果代理工具有规则设置,将其设置为「全部」或「全局」
检查抓包是否成功
手机开启浏览器(或APP、小程序),访问需要抓包的应用,在电脑端charles上查看是否有成功抓取到,内容是否正常显示