charles抓包配置

1. 软件获取

2. Mac 抓包配置

2.1 Chrome 配置

Chrome/Firefox 默认不使用系统代理,需手动配置:

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#4F46E5', 'primaryTextColor': '#000', 'primaryBorderColor': '#3730A3', 'lineColor': '#6366F1', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart LR
    A["chrome://settings"] --> B["高级 → 系统"]
    B --> C["打开代理设置"]
    C --> D["网页代理 HTTP<br/>127.0.0.1:8888"]
    C --> E["安全网页代理 HTTPS<br/>127.0.0.1:8888"]
    D --> F["抓包就绪"]
    E --> F

    classDef primary fill:#4F46E5,stroke:#3730A3,color:#fff
    classDef success fill:#10B981,stroke:#059669,color:#fff
    classDef config fill:#F59E0B,stroke:#D97706,color:#000

    class A primary
    class B,C config
    class D,E config
    class F success

抓取 HTTPS:在 Charles 左侧右键目标域名 → Enable SSL Proxying

2.2 仅抓手机包

Proxy → 取消勾选 macOS Proxy

效果:电脑正常上网,手机流量走 Charles。

3. 手机 HTTPS 抓包

HTTPS 抓包需要在代理端 “ 伪造 “ 证书,让手机信任 Charles 签发的证书。

%%{init: {'theme': 'base', 'themeVariables': {'actorBkg': '#4F46E5', 'actorTextColor': '#fff', 'actorBorder': '#3730A3', 'signalColor': '#6366F1', 'activationBkgColor': '#E0E7FF', 'activationBorderColor': '#4F46E5'}}}%%
sequenceDiagram
    autonumber
    participant Phone as "手机"
    participant Charles as "Charles"
    participant Server as "目标服务器"

    Note over Phone,Charles: 前提:手机已安装 Charles 根证书

    Phone->>Charles: "HTTPS 请求 (TLS)"
    activate Charles
    Charles->>Server: "代理请求"
    activate Server
    Server-->>Charles: "真实响应"
    deactivate Server
    Charles-->>Phone: "用 Charles 证书加密的响应"
    deactivate Charles

    Note over Phone,Server: Charles 作为中间人解密流量

3.1 安装 Mac 端证书

HelpSSL ProxyingInstall Charles Root Certificate

钥匙串访问中设置 “ 始终信任 “:

信任证书

3.2 配置手机 WiFi 代理

手机连接同一局域网,WiFi 设置中配置 HTTP 代理:

  • 服务器:Mac 的局域网 IP
  • 端口:8888

3.3 安装手机证书

手机证书菜单 手机证书下载

Safari 访问 chls.pro/ssl,按提示安装。

iOS 额外步骤设置通用关于本机证书信任设置 → 开启 Charles 证书

3.4 开启 SSL Proxy

  1. ProxySSL Proxying Settings → 添加 *:443
SSL配置
  1. ProxyStart SSL Proxying

4. Android 7.0+ 限制

Android 7.0 起默认不信任用户证书,Root 后才能将证书移至系统目录。

替代方案HttpCanary(免 Root 抓包)

参考:Android HTTPS 抓包方案

5. 抓包原理对比

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#4F46E5', 'primaryTextColor': '#000', 'primaryBorderColor': '#3730A3', 'lineColor': '#6366F1', 'secondaryColor': '#10B981', 'tertiaryColor': '#F59E0B'}}}%%
flowchart TB
    subgraph Sniffer["嗅探器 (Wireshark)"]
        S1["网卡混杂模式"] --> S2["旁路复制数据包"]
        S2 --> S3["只读分析"]
    end

    subgraph Proxy["代理 (Charles)"]
        P1["客户端信任代理证书"] --> P2["流量经过代理"]
        P2 --> P3["解密 → 修改 → 重加密"]
    end

    classDef sniffer fill:#06B6D4,stroke:#0891B2,color:#fff
    classDef proxy fill:#8B5CF6,stroke:#7C3AED,color:#fff

    class S1,S2,S3 sniffer
    class P1,P2,P3 proxy
维度WiresharkCharles/Fiddler
类型网卡嗅探器HTTP 代理
OSI 层级L2-L7 全层L7 应用层
原理旁路监听(只读)中间人攻击(可改包)
HTTPS需私钥才能解密安装伪造 CA 即可
场景协议分析/底层排查接口调试/爬虫分析

6. 参考