记录Mac下使用Charles抓包
抓包
简述
在网络应用如后端系统,app,小程序等的开发过程中,免不了接口可能会报错,但是一般在app中或者小程序中没有便捷的console控制台,而且线上环境也不会开启调试模式,所以想看一下接口的响应就显得比较麻烦,最近,博主就遇到小程序接口报错,想查看却抓不了包详情的问题:(。每次都是找测试同学,但是测试同学也有自己的事情,所以就想着自己抓包。
以前在windows电脑下,用过fidder工具来经常做安全测试,现在用mac电脑,fidder目前也已经支持mac系统了好像,但奈何有点贵,而且还未找到免费的用一哈,所以就换了一个Charles的工具,实战操作了一番,在此记录一下,帮助有需要的人。
环境装备
此处罗列的是个人的配置,其他参考就行
- mac os 11.1,无线网连接
- Charles软件安装,版本:4.6.2
- ios14设备,连接同一无线网
开始
说明:如果只是抓取本机的http请求,那么打开Charles自动配置就可以实现抓取,如果需要抓取https的接口或者抓取手机上的网络请求,参考下面步骤操作
证书安装
Help --> SSL Proxying --> Install Charles Root Certificate

点击上述菜单后会进入到钥匙串里:

如果不是完全信任名称旁边的图标会是红色的。双击charles钥匙串,选择【显示简介】,将信任改为始终信任;如下

SSL代理配置
Proxy --> SSL Proxy Settings


先勾选Enable SSL Proxying,然后配置抓取路由,Add点击
Host: *
Port: 443
- 标识所有网址都抓取,443代表Https,当然此处的host可以配置成自己想抓的网站地址前缀只抓取特定网站
至此,电脑端https就可以实现抓取了,可重新抓取试试。
如果想要实现抓取手机上App端或者小程序端的接口怎么办呢?请继续参考下面
开启代理


勾选Enable transparent HTTP proxying,然后下方的端口port默认为8888,和本机端口不冲突占用就行,我这里填的是8889,记住这个端口号
手机端配置
设置手机代理
设置手机代理需要注意手机与电脑连接的是同一个wifi,保证在同一局域网内即可,查看电脑端的IP地址,mac下进入命令窗口输入ifconfig(或者在设置->网络中查看)
手机上点击连接上的wifi,找到代理设置,不同手机可能方式不同哈,然后选择手动,就刚刚电脑上的IP填入到此处,charles中配置的端口号填入到这里,存储,代理就配置好了。


恭喜,到这里的话,手机上http请求就可以实现抓取了
手机上安装证书
要想实现手机上的https接口也可以抓取,还需要配置一下。如下,点击 Help --> SSL Proxying --> Install Charles Root Certificate on a Mobile Device or Remote Browser,接着会弹出一个info框,上面指示了手机上需要配置的ip和端口等提示信息。
手机下载证书,将chls.pro/ssl复制到浏览器中,会提示安装证书,这里安装证书按各自手机型号安装就可以。安装好只好,一定要记得去将证书设置为信任模式,比如ios下,去设置 -> 通用 -> 关于本机 -> 证书信任设置 打开信任

OK,到这里就已经配置完成了,就可以实现在电脑端抓取手机端的http/https接口,下面来看下效果;

问题总结
抓取显示unknow或乱码等问题
出现这个问题的可能原因:
- 首先检查证书配置是否正确,手机端以及电脑端的;
- 是否已经信任证书;
- 电脑端Charles代理的端口是否一致;
还有其他问题可以参考这里,unknown、乱码问题等
这么一操作,就不用麻烦测试同学了,后续移动端接口的问题,可以自己抓包排查一下啦~
记录Mac下使用Charles抓包的更多相关文章
- Mac下使用Charles抓包Android
原文地址:http://fanjiajia.cn/2018/11/21/Mac%E4%B8%8B%E4%BD%BF%E7%94%A8Charles%E6%8A%93%E5%8C%85Android/ ...
- Mac下使用Charles抓包https接口
1 官方网站下载,安装好Charles https://www.charlesproxy.com/download/ 2 安装ssl证书 3 信任证书 4 手机iPhone配置 ,获取证书url 5 ...
- mac 下使用Charles抓包华为手机app
安装Charles:https://www.cnblogs.com/sea-stream/p/11577418.html 需要保证手机与电脑连接同一个Wi-Fi设置mac charles,打开代理 2 ...
- Mac 下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- MAC下安装Fiddler抓包工具
需求 我们都知道在Mac电脑下面有一个非常好的抓包工具:Charles.但是这个只能抓代理的数据包.但是有时候想要调试本地网卡的数据库 Charles 就没办法了.就想到了在windows下面的一个F ...
- 【这特么是个坑。。。】iOS 10.3下解决Charles抓包ssl证书信任问题
针对近期iOS 10.3以上的系统charles抓https信任问题 前言 最近iPhone系统更新到ios 10.3后,在公司里用Charles抓包竟然出现了一些问题,https的请求都会失败,提示 ...
- Mac 环境 下使用Charles 抓包Http/Https请求
实现目标 在Mac 上 对 iOS 真机 和 模拟器 进行 Http/Https抓包 使用工具 Mac 上 Charles 4.2 安装 参考链接 1. 和 链接 2. 抓包 http 请求 (1 ...
- 【接口工具】mac环境下使用Charles抓包Https请求
Charles支持针对Https包解析.具体安装导航请参考“[接口工具]接口抓包工具之Charles” 操作流程 电脑安装证书: Help-SSL Proxying-Install Charles R ...
- MAC下使用Charles抓取安卓模拟器数据
一.安装Charles,这个不多记录 二.Charles数据乱码问题(参照这篇文章 http://blog.csdn.net/huanghanqian/article/details/52973651 ...
随机推荐
- informix常见问题
1.中文乱码 https://www.cnblogs.com/equation/p/5545967.html 2.informix创建数据库和用户 https://wenku.baidu.com/vi ...
- webpack 命令行报错“webpack” 不是内部或外部命令的解决方法
1. NodeJS安装,笔者安装在D盘.安装目录中有两个文件夹node_cache,node_global如下: 2. 配置 npm安装路径,输入如下命令: npm config set prefix ...
- (opencv10)膨胀和侵蚀(Dilation与Erosion)
(opencv10)膨胀和侵蚀(Dilation与Erosion) 图像形态学操作 图像形态学操作-基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学 形态学有四个基本操作:腐蚀, ...
- Python 数值中的下划线是怎么回事?
花下猫语:Python 中下划线的用法令人叹为观止,相信你已在各种文章或教程中见识过了.在 2016 年的 3.6 版本之后,Python 还引入了一种新的语法,使得下划线也可以出现在数值中.这篇翻译 ...
- vscode配置java+gradle开发环境
1.安装扩展包Java Extension Pack,里面包含java开发所必须的扩展 2.安装java jdk,8版本就是1.8版本,根据需要安装不同的版本 3.下载gradle,将bin文件夹添加 ...
- Tr0ll靶机
一.主机探测 二.信息收集 进入21端口 发现文件并下载 下载文件 作为字典进行登录爆破 用字典爆破 ssh登录 查找信息 /etc/init.d/ssh start scp root@192.1 ...
- JavaEE在线就业班2.0-(1)-《博学谷》
JavaEE在线就业班2.0学习笔记 1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java语言是美国 ...
- C运算符(算数运算符)
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 1 //实列 2 3 ...
- Java ArrayList【笔记】
Java ArrayList[笔记] ArrayList ArrayList基本结构 ArrayList 整体架构比较简单,就是一个数组结构 源码中的基本概念 index 表示数组的下标,从 0 开始 ...
- miniFTP项目实战五
项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...