【基础】MacOS上配置 Charles
一、Charles 简介
Charles 中文名为青花瓷,它通过HTTP代理/ HTTP监视器/反向代理,使开发人员可以查看其计算机与Internet之间的所有 HTTP 和 SSL/HTTPS 通信。这包括请求,响应和 HTTP 标头(其中包含cookie和缓存信息),以达到分析抓包的目的。
主要功能:
- 支持 HTTP 和 HTTPS 代理
- 支持流量控制,模拟弱网环境
- 支持接口并发请求
- 支持重发网络请求
- 支持断点调试
二、Charles 工作原理
Charles 是通过成为客户端的代理服务器来进行抓包分析,如下图所示:
因此,我们先要在代理服务器上运行 Charles 并配置代理,然后再在客户端上面配置代理,就能完成 Charles 的基本配置。这里的代理服务器,通常就是我们使用的电脑。
三、组件介绍
主导航栏的按钮功能介绍如下:
左侧请求导航栏的作用如下,主要是按域名显示抓取到的数据包列表。
四、macOS 代理设置
系统偏好设置 -> 网络 -> 高级 -> 代理,然后可以进入到如下图所示页面,最后勾选网页代理(HTTP)和安全网页代理(HTTPS),并对应填入代理服务器的IP地址和端口号即可。
注意:
配置时,两个选项(HTTP 和 HTTPS)都要分别填写对应的代理服务器信息,即需要 Copy 过去。
如果是代理服务器和客户端是同一台电脑,则可以通过运行 Charles -> Proxy -> macOS Proxy 的方式完成代理的设置。
PS:在不使用 Charles 之后记得将上面的代理设置关掉,否则可能会导致电脑上不了网!
五、iPhone 手机代理设置
首先,我们得知道代理服务器的 IP 地址,我们可以使用下面两种办法:
- 方法一:Terminal -> 输入命令 ip config 查看
- 方法二:Charles -> Help -> Local IP Adress
接着,我们需要在手机中进行如下配置:
- 在手机中选择 “设置” -> “无线局域网”
- 点击已连接的无线网络名称
- 在 HTTP 代理中点击“配置代理”
- 选择 “手动”, 输入代理服务器的 IP 地址和端口号
六、macOS 抓取 HTTPS 报文
在没有进行任何配置的情况下,我们抓到的 HTTPS 报文都无法正常显示
1.配置 HTTPS 代理
首先,我们得配置 HTTPS 代理:
- 打开 Charles -> Proxy -> SSL Proxying Settings
- 在 SSL Proxying 选项卡中勾选 “Enable SSL Proxying”
- 添加监听的 IP 地址,这里用通配符 * 表示所有的 IP 地址
最后还要要点击 OK 进行保存,这里的 443 是 HTTPS 协议占用的端口号。
2.证书配置
配置完代理之后,还要进行证书的配置,步骤如下:
- 打开 Charles -> Help -> SSL Proxying -> Install Charles Root Certificate
- 在证书列表里,打开名为 “Charles Proxy CA” 的证书(带红×)
- “使用此证书时” 选项卡选择 “始终信任” -> 输入密码确认(参考下图)
完成这些操作之后,你抓取的 HTTPS 报文就能正常显示了。
七、抓取 iOS 模拟器的 HTTPS 报文
- 打开 Charles -> Help -> SSL Proxying -> Install Charles Root Certificate in iOS Simulators,给 iOS 模拟器安装证书。
- 然后在 iOS 模拟器中,打开 Setting -> General -> About -> Certificate Trust Settings,进行证书的信任。
-
参考 6.macOS 抓取 HTTPS 报文 部分内容,对 mac 电脑进行配置
-
打开模拟器的 Safari 浏览器,在地址栏输入 chls.pro/ssl,下载描述文件。一般访问该网址后会有弹窗提示,点击同意下载就好。
-
在模拟器中,打开 Settings -> General -> Profile,安装 Charles 的描述文件,完成后就能正常抓取 iOS 模拟器上的 HTTPS 报文了。
八、抓取 iPhone 手机的 HTTPS 报文
我们首先也得对 Charles 进行如同 6.1 的 HTTPS 代理配置,然后再进行如下步骤:
- Charles -> Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser
- 在 iPhone 手机上配置代理,方法参考上文5.iPhone 手机代理设置
- 在 iPhone 手机 Safari 浏览器输入 ''chls.pro/ssl" 下载证书 (网址由上图显示的地址决定)
- 安装下载的证书,需要输入密码(如果找不到下载好的证书,可以去设置里面看看)
- 设置 -> 通用 -> 关于本机 -> 证书信任设置,设置成如下图所示。
至此就完成了 iPhone 手机 HTTPS 的配置,你可以尝试在手机中打开浏览器访问某个网址,就可以在 Charles 中看到抓取的包了。
进群交流、获取更多干货, 请关注微信公众号:
> > > 咨询交流、进群,请加微信,备注来意:sanshu1318 (←点击获取二维码)
> > > 学习路线+测试实用干货精选汇总:
https://www.cnblogs.com/upstudy/p/15859768.html
> > > 【自动化测试实战】python+requests+Pytest+Excel+Allure,测试都在学的热门技术:
https://www.cnblogs.com/upstudy/p/15921045.html
> > > 【热门测试技术,建议收藏备用】项目实战、简历、笔试题、面试题、职业规划:
https://www.cnblogs.com/upstudy/p/15901367.html
> > > 声明:如有侵权,请联系删除。
============================= 升职加薪 ==========================
更多干货,正在挤时间不断更新中,敬请关注+期待。