Charles - 抓取https请求
charles抓取http请求,只需要保证手机和电脑在同一个局域网,在手机端设置代理即可。
以下讲解抓取https包的方法:
1. 打开charles,按下图所示点击:
出现下图:
2. 确认手机连接上代理后,在手机上浏览器打开chls.pro/ssl,下载安全证书,并安装
注意以下几点:
- 如果下载的文件名后缀为pem,请修改为crt
- 将下载的文件,从浏览器路径下,复制到文件管理器的跟目录,否则安装时,会提示找不到证书
- 两种安装方法:1. wifi->高级设置->证书管理。 2. 设置->安全与隐私->更多安全设置->从手机存储或sd卡安装
3. 在charles中进行如下设置:
这样就可以抓取手机端端https包了
做完以上步骤,会发现mac上不了网了,这是因为mac上没有安装证书
1. 如下图所示:
2. 在弹出的对话框中选择“添加”
3. 未安装时,会提示该证书不被信任
在钥匙串中,找到Charles的证书,双击该证书,选择“始终信任”
4. 输入密码,ok啦
PS:若不想抓取mac上的包,不勾选macOS Proxy即可。以下两个图同步(在Charles上勾选了之后,偏好设置中自动勾选代理)
抓不到包的常见原因分析:
1. 手机和电脑是否在同一局域网
2. 手机代理是否设置为电脑的ip+端口
3. 查看Charles访问控制是否同意:charles工具栏-》Proxy-》Access Control Settings,把手机的ip加进去
4. (https)电脑/手机,是否安装https证书,信任证书
5. (https)charles工具栏-》Proxy-》SSL Proxying Settings,勾选enable ssl proxying,地址填 *.*
另外,
1.设置好了所有步骤,https包仍是红叉,可能是对应app做了限制,别纠结,人家加了安全限制。
2.抓到包了,没红叉,但数据返回是乱码,也别纠结,人家app做了数据包加密,咱们charles过程没问题。