charles教程之代理http(s)请求和抓包
做开发做项目总免不了抓包调试,window下使用fiddler,后来改用mac了,就使用上chaeles。
电脑上本地http代理
1、打开charles,菜单栏Tools--Map Local Setting,点击add,打开如下图
charles--http抓包2、填写好相关信息后,点击ok。给个例子:
charles--http抓包3、勾选上Enable Map Local后,点击ok即可。
4、若刷新仍未代理成功,记得把缓存清一下。
手机Http抓包
1、打开charles,打开Proxy--Proxy Settings--Http Proxy里的Port,即代理端口,默认为8888--勾选Enable transparent HTTP proxying
2、手机连接wifi(与电脑在同一个wifi下),进入设置--无线局域网--当前wifi,找到HTTP代理,手动设置。
3、查看mac的IP地址,如192.160.0.1
4、将手动设置中服务器填写为上一步获得的IP,端口填8888
5、然后打开你要抓包的网页或app进行操作,即可在电脑charles上看到请求的一系列信息。
6、charles弹出确认框,点击Allow按钮即可。
Https抓包和代理
https和http不同,需要获取下载证书。
1、charles设置基本参数
打开Proxy——Proxy Settings…——Proxies——HTTP Proxy里的Port,就是代理的端口,是与手机端一致(这里默认8888)——勾选Enable transparent HTTP proxying
2、手机连上同wifi,并设置手动代理
服务器为当前电脑ip,端口是上面设置的8888。此时已经可以实现初步抓包,下面接着把https的配置好,不配置的话,想抓包https下的会报错。
3、配置电脑上charles的ssl
Proxy--SSL Proxying Settings--SSL Proxying --勾选Enable SSL Proxying。在SSL选项卡中的Location表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填www.jianshu.com,Port填443(注意,这里先别填*:443, 下文会说明为什么)
4、获取证书
Charles--Help--SSL Proxying--nstall Charles Root Certificate on a Mobile Device or Remote Brower…--出现一个弹窗
https证书下载5、手机按照提示安装证书
打开safari,输入chls.pro/ssl,按照提示安装证书。这时,手机访问https的链接,charles也能抓到了。
手机证书已安装6、电脑抓包https
若电脑也想抓到https,还需要一点设置。Help--SSL Proxy--Install Charles Root Certificate--这时会打开【钥匙串访问】--解锁系统根证书--找到Charles Proxy CA--打开--选择信任--使用此证书时:始终信任
7、最后一步
记得前面说过的*:443吗,对,这时就可以改为*:443了,手机端,电脑,都可以访问任意https而畅通无阻。
接下来就很HTTP抓包一样了,同理,本地代理也需要enable SSL Proxying。