Skip to content

让 Charles 解析 HTTPS 请求:Windows/Chrome/macOS/iOS #94

@Dream4ever

Description

@Dream4ever

具体流程

在默认情况下,Charles 监听到的 HTTPS 请求都是乱码(body 部分),如果需要让 Charles 能够显示 HTTPS 请求的实际内容,就需要让 Charles 充当客户端和服务端的“中间人”,这样就能够看到 HTTPS 请求的实际内容了。

Windows + Charles 4.X

在 Charles 中点击菜单 Help → SSL Proxying → Save Charles Root Certificate,导出 Charles 的根证书至本地,记得在对话框中为证书文件命名。

如果导出的证书已经过期,则在 Charles 中点击菜单 Help → SSL Proxying → Reset Charles Root Certificate,确认后重新导出的证书就是以当前日期为起始日期的了。

Chrome

在 Chrome 中找到管理证书的地方,将刚才导出的证书导入到“受信任的根证书颁发机构”,让 Chrome 信任该证书。

接着再点击 Charles 中的菜单 Proxy → SSL Proxying Settings,在“SSL Proxying”标签中,勾选“Enable SSL Proxying”,在“Include”的“Location”中,添加一条“Host”为“*”,“Port”为“*”的记录,这样就能看到所有 HTTPS 请求的实际内容了。或者也可以将“Host”和“Port”设置为想要监听的主机名称和端口号,根据自己需求来就行。

然后在 Chrome 的 SwitchyOmega 扩展中,添加一个名为“Charles”的情景模式,代理协议为 HTTP,代理地址为 127.0.0.1,代理端口为 Charles 的 8888。

最后可以根据实际情况,决定是让所有网页请求都使用 Charles 这个情景模式,来监听所有 HTTPS 请求;或者在“auto switch”情景模式中,只对指定 URL 使用 Charles 这个情景模式,来监听特定网站的 HTTPS 请求。

注意:如果 Chrome 提示 您的连接不是私密连接 NET::ERR_CERT_AUTHORITY_INVALID,可能是 Charles 的证书到期了,按照上面的流程再配置一遍即可。

macOS

在 Charles 中点击菜单 Help → SSL Proxying → Install Charles Root Certificate,在弹出的对话框中输入系统密码以进入“钥匙串访问”。

在打开的窗口中,找到名字中包含“Charles Proxy”的证书,双击打开,展开“信任”,在“使用此证书时”一项右侧,选择“始终信任”,点击左上角的 X 关闭小窗口,并输入系统密码以保存更改,这样就可以监听本机的 HTTPS 请求了。

如果需要监听 Chrome 中的请求,需要做的额外操作和 Windows 一样,在 Chrome 的 SwitchyOmega 中添加 Charles 专属的情景模式即可。

iOS

为了监听 iOS 上的 HTTPS 请求,先让 macOS 和 iOS 接入同一个 WiFi 网络(还可以让电脑开启热点,把自己的网络分享给 iPhone),然后在 iOS 的 WiFi 设置中配置 HTTP 代理,地址填写 macOS 的 IP,端口填写 Charles 的 HTTP 监听端口。

然后用 iOS Safari 访问 https://chls.pro/ssl 这个地址(切记要用 Safari,不要用 Chrome 或其他浏览器),Safari 会提示你安装证书,安装即可。

然后依次进入 iOS 的 设置 → 通用 → 关于本机 → 证书信任设置,开启对 Charles 证书的信任。

完成上面的配置之后,就可以在 macOS 上的 Charles 中,看到 iOS 上的 HTTPS 请求的实际内容了。

参考资料

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions