共计 3614 个字符,预计需要花费 10 分钟才能阅读完成。
背景
Charles 是一个 HTTP 和 SOCKS 代理服务器。代理申请和响应使 Charles 可能在申请从客户端传递到服务器时检查和更改申请,以及从服务器传递到客户端时的响应。
抓包
PC 端抓包
1、抉择菜单中的 Proxy -> Mac OS X Proxy
2、确保 Charles 处于 Start Recording 状态。
挪动端抓包
1、手机和电脑在同一个网络:
2、电脑关掉防火墙,关上 Charles 的代理:Proxy -> Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不必批改),勾选 Enable transparent HTTP proxying。
wifi 里找到代理,抉择手动,填写 IP 地址,端口 8888
HTTPS 抓包
pc 端证书下载安装:
Help -> SSL Proxying -> Install Charles Root Certificate
形式一:间接下载
形式二:如果下载不了,去官网下载
证书信赖
挪动端证书下载安装:
Help -> SSL Proxying – Install Charles Root Certificate on a Mobile Device。而后会弹出上面的提醒。
手机浏览器输出:chls.pro/ssl
- 下载后关上手机设置 - 通用 - 形容文件与设施治理,抉择配置形容文件,抉择信赖即可,看到已验证就行。
- 最初手机设置 - 通用 - 对于手机 - 证书信赖设置,抉择开就能够应用 HTTPS 抓包了。
留神:手机和电脑的证书的版本须要对应。
你手机原本就有 1 个是旧版本的,然而电脑连得是新版本,也要从新下载。
为什么要装置证书
如果是 HTTP 申请,因为数据自身没有加密,所以申请内容和返回后果是间接展现的。
但 HTTPS 对数据进行了加密解决,所以 Charles 面对客户端,把本人伪装成服务器,对服务器把本人伪装成客户端。
- Charles 拦挡客户端的申请,伪装成客户端向服务器进行申请,服务器向“客户端”(实际上是 Charles)返回服务器的 CA 证书;
- Charles 拦挡服务器的响应,获取服务器证书公钥,而后本人制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles 拿到了服务器证书的公钥);
- 客户端接管到“服务器”(实际上是 Charles)的证书后,生成一个对称密钥,用 Charles 的公钥加密,发送给“服务器”(Charles);
- Charles 拦挡客户端的响应,用本人的私钥解密对称密钥,而后用服务器证书公钥加密,发送给服务器。(这一步,Charles 拿到了对称密钥);
- 服务器用本人的私钥解密对称密钥,向“客户端”(Charles)发送响应;
- Charles 拦挡服务器的响应,替换成本人的证书后发送给客户端;
- 当然,如果用户不抉择信赖装置 Charles 的 CA 证书,Charles 也无奈获取申请内容。还有一种,如果客户端内置了自身的 CA 证书,这时如果 Charles 把本人的证书发送给客户端,客户端会发现与程序内的证书不统一,不予通过,此时 Charles 也是无奈获取信息的。
根底设置
工具导航栏
Charles 顶部为菜单导航栏,菜单导航栏上面为工具导航栏。视图如下图所示:
- 革除捕捉到的所有申请
- 红点状态阐明正在捕捉申请,灰色状态阐明目前没有捕捉申请。
- 灰色状态阐明是没有开启网速节流,绿色状态阐明开启了网速节流。
- 灰色状态阐明是没有开启断点,红色状态阐明开启了断点。
- 编辑批改申请,点击之后能够批改申请的内容。
- 反复发送申请,点击之后选中的申请会被再次发送。
- 验证选中的申请的响应。
- 罕用性能,蕴含了 Tools 菜单中的罕用性能。
- 罕用设置,蕴含了 Proxy 菜单中的罕用设置。
structure 依照域名划分
sequence 按工夫排序
太多了能够看工具栏底下依照 Filter 筛选
使用指南
Proxy
Proxy 菜单蕴含以下性能:
- Start/Stop Recording:开始 / 进行记录会话。
- Start/Stop Throttling:开始 / 进行节流。
- Enable/Disable Breakpoints:开启 / 敞开断点模式。
- Recording Settings:记录会话设置。
- Throttle Settings:节流设置。
- Breakpoint Settings:断点设置。
- Reverse Proxies Settings:反向代理设置。
- Port Forwarding Settings:端口转发。
- Windows Proxy:记录计算机上的所有申请。
- Proxy Settings:代理设置。
- SSL Proxying Settings:SSL 代理设置。
- Access Control Settings:访问控制设置。
- External Proxy Settings:内部代理设置。
- Web Interface Settings:Web 界面设置。
Recording Settings(记录会话设置)
Recording Settings 有 Options、Include、Exclude 三个选项卡:
Options:通过 Recording Size Limits 限度记录数据的大小。当 Charles 记录时,申请、响应头和响应体存储在内存中,或写入磁盘上的临时文件。有时,内存中的数据量可能会变得太多,Charles 会告诉您并进行录制。在这种状况下,您应该革除 Charles 会话以开释内存,而后再次开始录制。在录制设置中,您能够限度 Charles 将记录的最大大小; 这基本不会影响你的浏览,Charles 仅会进行录制。
Include:只有与配置的地址匹配的申请才会被录制。
Exclude:只有与配置的地址匹配的申请将不会被录制。
或者用 Focus 进行疾速过滤
Throttle Settings(节流设置)
模仿弱网环境
Bandwidth:带宽
Utilistation:利用百分比
Round-trip:往返提早
MTU:字节
Breakpoint Settings(断点设置)
Windows Proxy(记录计算机上的所有申请)
抓取电脑的申请,勾选 Windows Proxy,如果只须要抓取挪动端申请,则勾销勾选这个选项。
Proxy Settings(代理设置)
设置代理默认端口号
SSL Proxy Settings(SSL 代理设置)
勾上 Enable SSL proxying 就实现了在 Charles 上的 SSL 代理设置。之后也能够抉择 Add,而后填入须要监控的 Host 和 Port 信息,这样就达到了针对某个域名启用 SSL 代理的目标。
Tools
Tools 菜单蕴含以下性能:
- No Caching Settings:禁用缓存设置。
- Block Cookies Settings:禁用 Cookie 设置。
- Map Remote Settings:近程映射设置。
- Map Local Settings:本地映射设置。
- Rewrite Settings:重写设置。
- Black List Settings:黑名单设置。
- White List Settings:白名单设置。
- DNS Spoofing Settings:DNS 坑骗设置。
- Mirror Settings:镜像设置。
- Auto Save Settings:主动保留设置。
- Client Process Settings:客户端过程设置。
- Compose:编辑批改。
- Repeat:反复发包。
- Repeat Advanced:高级反复发包。
- Validate:验证。
- Publish Gist:公布要点。
- Import/Export Settings:导入 / 导出设置。
- Profiles:配置文件。
- Publish Gist Settings:公布要点设置。
Map 映射:
Map Remote Settings:近程映射设置。
Map Local Settings:本地映射设置。
Charles 的 Map 性能分 Map Remote 和 Map Local 两种,顾名思义,Map Remote 是将指定的网络申请重定向到另一个网址申请地址,Map Local 是将指定的网络申请重定向到本地文件。
Map Remote Settings 应用:
图示,将所有 www.csc.com 的申请重定向到了 www.www.csc.com
(有些比较复杂的网络申请),能够将申请构造保留到本地,而后再应用 Map Local Settings(本地映射)的文件。
Rewrite
Rewrite 性能适宜对某一类网络申请进行一些正则替换,以达到批改后果的目标。
能够重写接口所有元素的内容:header、host、url、path、query param、response status、body。
Charles 性能总结
- 截取 Http 和 Https 网络封包。
- 反对重发网络申请,不便后端调试。
- 反对批改网络申请参数。
- 反对网络申请的截获并动静批改。
- 反对模仿慢速网络。
- Structure 视图将网络申请按拜访的域名分类。
- Sequence 视图将网络申请按拜访的工夫排序。
- Map 性能适宜长期地将某一些申请重定向到另一个网络地址或本地文件。
- Rewrite 性能适宜对网络申请进行一些正则替换。
- Breakpoints 性能适宜做一些临时性的批改。