charles的使用

本文详细介绍了如何使用Charles进行HTTPS抓包,包括下载证书、设置Web端和App端的HTTPS抓取,以及利用Charles进行断点调试、本地修改、弱网测试和屏蔽抓包信息等功能操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、charles的原理 

1.1:Charles的原理

  1. 客户端向服务器发起HTTPS请求
  2. Charles拦截客户端的请求,伪装成客户端向服务器进行请求
  3. 服务器向“客户端”(实际上是Charles)返回服务器的CA证书
  4. Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。
  5. 客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
  6. Charles拦截客户端的响应,用自己的私钥解密对称密钥(Charles拿到了对称密钥**)**,然后用服务器证书公钥加密,发送给服务器。
  7. 服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
  8. Charles拦截服务器的响应,替换成自己的证书后发送给客户端
  9. 至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。

1.2:总结:

HTTPS抓包的原理还是挺简单的,简单来说,

截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求

接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容

二、获取Web端的https

1.下载证书

 

1.1:为什么下载charles的ssl证书 

默认情况下,charles不能解析https协议的接口,里面的请求和响应数据都是乱码格式,所以我们需要下载ssl证书,来获取里面的数据

1.2:开始下载

1.2.1 :点击help,选中ssl Proxying ,点击Install Charles Root Certificate

1.2.2:点击”安装证书”按钮

 

1.2.3:点击”下一步”按钮

1.2.4:选中”将所有的证书都放入下列存储”,点击”浏览”按钮

 

1.2.5:选中”受新任的根证书颁发机构”,点击”确定”按钮

 

1.2.6:点击”下一步”按钮

 

### Charles 工具的功能介绍与使用教程 Charles 是一款功能强大的抓包工具,广泛应用于网络调试和性能分析。以下是关于 Charles 的功能介绍及其使用方法的详细说明。 #### 一、Charles 的基本功能 Charles 提供了多种功能以满足开发者在网络调试中的需求,包括但不限于以下内容: - **界面介绍**:Charles 的界面设计直观,主要由会话列表、请求详情和配置选项组成[^1]。 - **弱网模拟**:通过设置网络延迟和带宽限制,开发者可以模拟不同的网络环境,从而测试应用在不同网络条件下的表现[^1]。 - **请求编辑**:支持对 HTTP/HTTPS 请求进行修改,允许用户更改请求头、参数或正文内容,以便测试不同的场景[^1]。 - **请求重发**:可以重新发送已捕获的请求,便于重复测试某些特定的网络行为。 #### 二、Charles 的安装与基本设置 在使用 Charles 前,需要完成以下基本设置: - **下载与安装**:访问 Charles 的官网(https://www.charlesproxy.com/),根据操作系统选择合适的版本进行下载和安装[^2]。 - **代理配置**:启动 Charles 后,确保设备的网络代理设置正确指向 Charles 的本地代理地址(通常是 `127.0.0.1` 和端口 `8888`)[^2]。 #### 三、SSL 抓包配置 为了捕获 HTTPS 流量,需要进行 SSL 代理设置: - 打开 Charles 的菜单栏,依次选择 `Proxy > SSL Proxying Settings`。 - 在弹出的窗口中,添加需要抓取的域名,并将 Charles 自带的 CA 证书导入到目标设备或浏览器中[^4]。 - 导入证书后,确保设备信任该证书,以便正常解密 HTTPS 数据流。 #### 四、高级功能 除了基础功能外,Charles 还提供了许多高级功能: - **带宽限制**:通过模拟低速网络,评估应用在不同网络条件下的性能[^3]。 - **断点调试**:允许用户暂停请求并手动修改其内容后再继续发送[^3]。 - **映射功能**:支持将某个 URL 的请求重定向到本地文件或其他服务器地址,便于开发和测试[^3]。 #### 五、注意事项 在使用 Charles 时需要注意以下几点: - 确保目标设备已正确配置代理,并导入了 Charles 的 CA 证书。 - 如果遇到证书不被信任的问题,可能需要手动将证书添加到系统的受信任证书列表中。 ```python # 示例代码:验证 Charles 的代理设置是否生效 import requests proxies = { "http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888" } response = requests.get("https://www.example.com", proxies=proxies) print(response.status_code) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值