charles抓包https设置

本文介绍如何使用Charles工具抓取HTTPS流量。主要内容包括在电脑上安装Charles证书、在Android模拟器上安装证书以及在Charles中配置SSL代理。通过这些步骤,可以实现对HTTPS流量的有效监控。

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

写在前面

开发时,面对各种接口数据,绝大多数时间都会用Charles抓包进行数据分析,但也总会有那么些情况让人抓狂:

  • Bugfix,线下环境(非https)数据少,满足不了bug出现的情况,无法一边抓包一边改bug
  • 线上环境(https)有接口数据,线下环境无接口数据的bug,这个时候抓包突然显得很苍白无力,Charles抓不了https包╯ ︵╰(‵□′╰

很自然地想要Charles能抓https包,于是去搜各种教程,结果发现依然抓狂:

  • 首先得电脑上装证书,ok,进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate,然而现实是残酷的 — ”无法找到证书“
  • 抓Android真机或者模拟器上的https包,还是得先给Android真机或模拟器装证书,照着教程折腾(失败)

    a)下载Charles证书 下载地址: http://www.charlesproxy.com/assets/legacy-ssl/charles.crt

    b)安装Charles证书 将下载完成的charles.crt证书push到Android设备(adb push charles.crt /sdcard/),从手机存储卡中找到安装证书charles.crt点击安装,教程说安装上就可以抓包了,结果又掉泪(网上找了好多教程,还发现好多都是针对ios的—— 无法安装该证书,因为无法读取证书文件 

     

折腾了一两次发现无果,于是只有迁就着安于无法抓https包的现状了,但后来发现“抓狂的情况”出现越来越频繁了,不能安于现状了  (¬_¬)   

https抓包的实现

(一)首先,电脑得装个证书

(1)先去官网下载证书,不然会报“无法找到证书”错误(官网注明说该证书在v3.10上会失效,我安装能正常工作...)

官网地址:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/

(2)进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate ,会打开证书,安装进去 

(3)当安装后,可能你看不到在哪里,在右上角的搜索中 输入 cha 则会显示出来,你看到上面是 此根证书不被信任

(4)在证书上右键 - 显示详情 ,展开信任 选择 始终信任,然后点击左上角的关闭,系统会弹出授权提示框,授权同意修改,回到列表,稍等,证书就刷新了

(二)然后,移动设备上安装证书

这里不以ios为例,以Android模拟器为例~~打开模拟器浏览器,在浏览器中输入http://charlesproxy.com/getssl,然后会弹出一个界面,让输入证书名字,直接输入charles就ok啦,安装成功后会提示证书安装成功

注:亲测直接在模拟器浏览器打开网址可以安装成功证书,通过网址http://www.charlesproxy.com/assets/legacy-ssl/charles.crt)下载,手动安装会报“无法安装证书”错误

(三)最后,Charles添加SSL Proxying

(1)进入Proxy-》SSL Proxying Settings

(2)勾选“Enable SSL Proxying”,并点击下方的Add

(3)在弹出的“Edit Location”中,输入Host和Port都为“*”(看提示这样配置可以抓到所有https的包),然后进行添加

(4)确保模拟器/手机将电脑的IP地址设置为代理,端口号为8888,具体教程点这里

这下就可以愉快的抓https包,https拦截里不再是unknown了~~

### Charles 抓包 HTTPS 网页的配置方法 在使用 Charles 抓取 HTTPS 网页的数据包时,需要进行一些额外的配置,以确保能够正确解密加密的 HTTPS 流量。以下是详细的配置步骤: #### 1. 启用 SSL 代理 为了能够捕获 HTTPS 请求,首先需要启用 SSL 代理功能。 - 路径:`Proxy` -> `SSL Proxying Settings` -> 勾选 `Enable SSL Proxying`。 - 在 `Locations` 列表中添加需要抓包的域名,例如输入 `*:*` 表示抓取所有 HTTPS 请求。 #### 2. 安装 Charles 根证书 由于 HTTPS 是加密协议,Charles 需要安装其根证书才能解密流量。 - 路径:`Help` -> `SSL Proxying` -> `Install Charles Root Certificate`。 - 将证书安装到操作系统中的“受信任的根证书颁发机构”存储区,以确保浏览器不会提示证书错误。 #### 3. 配置访问网站证书 某些网站可能会对证书进行严格的校验,因此可能需要额外配置。 - 如果目标网站使用了特定的证书链,可以在 `SSL Proxying Settings` 中导入相应的中间证书或服务器证书,以确保 Charles 能够正确模拟服务器端的证书环境。 #### 4. 移动端抓包配置(可选) 如果需要在移动端抓包,还需要进行以下步骤: - 确保手机和运行 Charles 的电脑处于同一局域网。 - 在手机的 Wi-Fi 设置中配置代理,指向电脑的 IP 地址和 Charles 的端口号(默认为 8888)。 - 打开手机浏览器访问 `chls.pro/ssl` 下载并安装 Charles 根证书。 #### 5. 开始抓包 完成上述配置后,打开浏览器或移动端应用,访问目标 HTTPS 网站。Charles 会自动捕获并解密 HTTPS 请求,显示详细的请求和响应信息,包括请求头、响应头、请求体和响应体等内容。 --- ### 实用技巧彩蛋 - **过滤请求**:可以使用 `Filter` 功能按域名、路径等条件过滤请求,便于快速定位目标数据。 - **断点调试**:通过 `Breakpoints` 功能可以设置断点,手动修改请求或响应内容。 - **保存会话**:点击 `File` -> `Save` 可以将当前会话保存为 `.chls` 文件,便于后续分析或分享。 --- ```python # 示例:Charles 抓包时的请求结构(模拟) request = { "method": "GET", "url": "https://example.com/api/data", "headers": { "User-Agent": "Mozilla/5.0", "Accept": "application/json" }, "body": "" } response = { "status_code": 200, "headers": { "Content-Type": "application/json" }, "body": '{"data": "example_response"}' } ``` ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值