Charles 中文名为青花瓷,它通过HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有HTTP和SSL / HTTPS通信。这包括请求,响应和HTTP标头(其中包含cookie和缓存信息),以达到分析抓包的目的。
主要功能:
支持 HTTP 和 HTTPS 代理支持流量控制,模拟弱网环境支持接口并发请求支持重发网络请求支持断点调试Charles 是通过成为客户端的代理服务器来进行抓包分析,如下图所示: 因此,我们先要在代理服务器上运行 Charles 并配置代理,然后再在客户端上面配置代理,就能完成 Charles 的基本配置。这里的代理服务器,通常就是我们使用的电脑。
主导航栏的按钮功能介绍如下:
左侧请求导航栏的作用如下,主要是按域名显示抓取到的数据包列表。
-> 系统偏好设置 -> 网络 -> 高级 -> 代理,然后可以进入到如下图所示页面,最后勾选网页代理(HTTP)和安全网页代理(HTTPS),并对应填入代理服务器的IP地址和端口号即可。 注意:
配置时,两个选项(HTTP 和 HTTPS)都要分别填写对应的代理服务器信息,即需要 Copy 过去。如果是代理服务器和客户端是同一台电脑,则可以通过运行 Charles -> Proxy -> macOS Proxy 的方式完成代理的设置。首先,我们得知道代理服务器的 IP 地址,我们可以使用下面两种办法:
方法一:Terminal -> 输入命令 ip config 查看方法二:Charles -> Help -> Local IP Adress接着,我们需要在手机中进行如下配置:
在手机中选择 “设置” -> “无线局域网”点击已连接的无线网络名称在 HTTP 代理中点击“配置代理”选择 “手动”, 输入代理服务器的 IP 地址和端口号在没有进行任何配置的情况下,我们抓到的 HTTPS 报文都是乱码。对此,我们需要以下经过两大步配置。
首先,我们得配置 HTTPS 代理:
打开Charles -> Proxy -> SSL Proxying Settings在 SSL Proxying 选项卡中勾选 “Enable SSL Proxying”添加监听的 IP 地址,这里用通配符 * 表示所有的 IP 地址最后还要要点击 OK 进行保存,这里的 443 是 HTTPS 协议占用的端口号。
配置完代理之后,还要进行证书的配置,步骤如下:
打开 Charles -> Help -> SSL Proxying -> Install Charles Root Certificate 在证书列表里,打开名为 “Charles Proxy CA” 的证书(带红×)“使用此证书时” 选项卡选择 “始终信任” -> 输入密码确认(参考下图)完成这些操作之后,你抓取的 HTTPS 报文就能正常显示了。
至此就完成了 iPhone 手机 HTTPS 的配置,你可以尝试在手机中打开浏览器访问某个网址,就可以在 Charles 中看到抓取的包了。