由于个人记性不好,所以决定写篇博客记录下来具体步骤。
我们都知道,charles相当于一个插在服务器和客户端之间的“过滤器”。当客户端向服务器发起请求的时候,先到charles进行过滤,然后charles在把最终的数据发送给服务器。所以charles能抓取到请求,是因为我们的请求先经过了chaelse。
1、在PC端抓https包
Charles pc端抓包非常简单,启动Charles会自动与浏览器设置成代理,不需要进行过多的设置,接下来我就就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息。
如果启动charles后并没有捕获到请求,请检查你的浏览器是否使用了代理软件,或者检查下Proxy->Recording setting->include 下面有没有单独设置只抓取某个域名下面的请求,有的话,remove掉。
2、pc端 抓取HTTPS协议
虽然现在Charles能够直接抓包了,但是https协议的报我们是抓取不了的,需要安装SSL证书才可以。Help -> SSL Proxying -> Install Charles Root Certificate
然后再进行信任证书,在 Mac 上的“钥匙串访问” App 中,选择其中一个钥匙串列表中的钥匙串,然后连按一个证书,设置Charles的证书为始终信任。
然后还需要进行ssl代理设置
打开Charles,上方菜单栏 —>Proxy —>SSL Proxy Settings —->Add,如图:
Host:填*表示所有网站都抓
Port:443
点击OK,通过以上配置后,我们抓取的信息,就都可以看到https的请求了(明文的)。
3、手机端(以iphone为例子)
手机端也需要安装证书
打开charlse的 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser
出现弹窗,chls.pro.ssl是下载证书的地址,打开手机safari浏览器会自动弹出下载框,点击允许。
然后手机打开设置,会出现你刚才下载的证书,点击进去安装,ios的需要格外设置下信任证书。
设置->关于本机->信任证书。
我们需要保证电脑和手机连接在同一内网,也就是在同一个路由器上
然后开始设置代理,设置->无线局域网->配置代理-手动
打开charles-help->local ip address,将弹窗里面的ip地址输入到手机上服务器那一栏
打开charles-proxy-proxy setting->port 将端口号填上手机 端口号那一栏,保存。
代理就配置成功了,就可以实现手机端的抓包了。