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过程没问题。

 

posted @ 2020-07-13 16:03  小虫虫大虫虫  阅读(812)  评论(0编辑  收藏  举报