当前位置: 首页 > news >正文

Charles 安装与使用详解:实现 App 与小程序 HTTPS 抓包

在日常的移动端开发、接口调试或逆向分析中,我们经常需要抓取移动 App 或微信小程序的 HTTP/HTTPS 请求。Charles 是一款经典强大的代理抓包工具,凭借简单的界面和强大的功能,成为了 macOS 抓包的首选工具之一。

本文将详细介绍 Charles 的安装、证书配置、手机抓包设置、HTTPS 解密,以及应对 App 启用 SSL Pinning 无法抓包的解决方案。


一、什么是 Charles?

Charles 是一款基于代理的网络抓包工具,支持 HTTP/HTTPS、WebSocket 等协议,能实时拦截、查看、修改请求与响应。

特点如下:

  • 支持 HTTPS 解密
  • 支持修改请求(断点调试、重放)
  • 支持手机代理抓包(iOS/Android)
  • 支持 WebSocket 抓包

二、安装 Charles(macOS)

1. 下载并安装

  • 官网地址:https://www.charlesproxy.com
  • 选择 macOS 安装包下载并安装
  • 安装完成后,将 Charles 拖入 Applications 即可使用

三、本机证书安装(解密本机 HTTPS 流量)

  1. 打开 Charles → 菜单栏 → Help → SSL Proxying → Install Charles Root Certificate
  2. 会弹出“钥匙串访问”,找到 Charles Proxy CA 证书
  3. 右键 → 显示简介 → “信任”设置为「始终信任
  4. 输入密码后完成配置
  5. 重启 Charles 生效

四、手机 App / 小程序 抓包配置

1. 配置手机代理

确保手机和 Mac 在同一个 Wi-Fi 下

  • 打开手机设置 → Wi-Fi → 当前连接 → 配置代理 → 手动
    • 服务器:Mac 的 IP(可用 ifconfig 查看,如 192.168.1.88
    • 端口:默认是 8888(Charles 默认监听端口)

2. 安装证书(iOS 为例)

iPhone 操作步骤:
  1. 手机 Safari 浏览器访问:

    http://chls.pro/ssl
    

    若打不开,使用:

    http://<你的Mac IP>:8888
    
  2. 跳转描述文件安装界面 → 安装 Charles 证书

  3. 打开 设置 → 通用 → 关于本机 → 证书信任设置 → 启用「Charles Proxy CA」

打不开链接,可以用微信等手动传输到手机,保存到本地,再点击安装即可。


五、启用 HTTPS 解密功能

仅安装证书不能解密 HTTPS,需要手动指定要解密的域名:

操作步骤:

  1. Charles 菜单栏 → Proxy → SSL Proxying Settings…

  2. 点击 Add

  3. 填入 Host(域名或通配符)和 Port:

    示例配置:

    HostPort
    *.weixin.qq.com443
    *.taobao.com443
    *.alipay.com443
    api.xxx.com443

添加完成后即可解密 HTTPS 请求。


六、判断抓包是否成功

在 Charles 中观察:

  • 能看到 HTTPS 请求(显示 🔓 图标)
  • 可以查看请求头、参数、响应内容
  • 请求不是 “Tunnel to …” 类型

七、无法解密的常见原因与解决方案

问题解决办法
抓不到 HTTPS 内容检查是否添加域名到 SSL Proxying Settings
手机访问不了证书地址尝试 http://<Mac IP>:8888,确认 Charles 正在运行并手机代理正确
App 请求依然加密不可见可能该 App 启用了 SSL Pinning
Charles 无法弹出设备确认框检查 Mac 防火墙设置,关闭防火墙或允许 Charles 网络访问

八、关于 SSL Pinning 的说明

很多大型 App(如微信、支付宝、抖音)会启用 SSL Pinning(证书锁定),即便你安装了 Charles 的证书,也无法中间人解密。

解决方案:

场景方法
微信 App使用 Android 模拟器 + 低版本微信进行抓包
Android App使用 Frida + SSL Pinning Bypass 脚本
开发小程序调试使用微信开发者工具代替抓包调试

九、Android 7+ 抓包问题

Android 7 以上系统默认不再信任用户安装的证书用于 App HTTPS 通信。

解决方式:

  • 使用模拟器(如 Genymotion)
  • 或 root 设备,将 Charles 证书加入系统证书存储
  • 或结合 Frida 技术实现绕过(适合高级用户)

十、结语

Charles 是开发调试过程中不可或缺的网络抓包利器,尤其在移动端调试中帮助巨大。通过正确安装证书、配置代理、设置解密域名,即可实现 HTTPS 流量透明可视化。

但随着安全性提升,越来越多 App 使用 SSL Pinning、系统证书校验等方式阻止中间人抓包,对此我们也可以使用模拟器、Frida 等进阶手段继续探索。

相关文章:

  • Linux进程
  • 网络协议TCP/IP、UDP、HTTP/HTTPS 完全指南
  • 数据库学习通期末复习一
  • C# + Python混合开发实战:优势互补构建高效应用
  • Day09【基于Tripletloss实现的简单意图识别对话系统】
  • Android学习总结之git篇
  • 根据pdf文档生成问答并进行评估
  • 集成电路流片随笔10:UART模块tinyriscv 通信协议和RIB接口总线区别
  • 【day5】调用AI接口,生成自动化测试用例
  • JVM 垃圾回收
  • 一个简单的Python文件MCP服务器
  • OpenAI 最新发布的 GPT-4.1 系列在 API 中正式上线
  • Google-Tensorflow-NLP
  • NLP高频面试题(四十三)——什么是人类偏好对齐中的「对齐税」(Alignment Tax)?如何缓解?
  • 什么样的游戏需要用到游戏盾SDK呢?
  • vue 表格某列超出显示...,悬浮tip
  • 【HarmonyOS 5】AttributeModifier和AttributeUpdater详解
  • 【C#】Html转Pdf,Spire和iTextSharp结合,.net framework 4.8
  • MAC-​​需求​​:10万订单异步执行库存扣减、短信通知。
  • #include<bits/stdc++.h>
  • 谜语的强制力:弗洛伊德与俄狄浦斯
  • 黄晨光任中科院空间应用工程与技术中心党委书记、副主任
  • 美联储主席:关税“远超预期”,美联储实现目标的进程或被推迟至明年
  • 男子煎服15克山豆根中毒送医,医生:不能盲目相信偏方
  • 中国公民免签赴马来西亚的停留天数如何计算?使馆明确
  • 广东省联社:积极推动改制组建农商联合银行工作