基于charles抓取https请求使用过程解析

本文详细介绍如何在不同平台和浏览器上安装Charles根证书,并设置Charles进行HTTPS请求抓包。包括Windows、macOS、iOS、Android等系统的具体操作步骤。

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

使用Charles抓https请求,这里需要设置连接端即浏览器或应用程序和Charles端,才能完成SSL Proxying的设置。

SSL 证书

连接端需要先安装Charles证书,以下介绍了如何在不同的浏览器或应用程序上信任Charles根证书

Windows/Internet Explorer

操作:

1、Charles-》Help-》SSL Proxying > Install Charles Root Certificate,会弹出一个窗口警告你没有信任CA Root Certificate

2、点击"Install Certificate” 按钮,加载导入证书的向导,这个证书必须要被导入到"Trusted Root Certification Authorities” 证书存储中,所以会覆盖当前自动证书存储的内容

3、证书安装完成后,需要重启IE才能生效

Mozilla Firefox

首选要确保firefox已连接到charles

检查的方法:

在firefox中访问链接,能够在charles中查看到firefox中的请求信息

firefox中安装Chalres根证书操作如下:

1、使用firefox访问:Charles Web Debugging Proxy • SSL CA Certificate installation

这时firefox会弹出提示:

图1

2、点击确认安全例外,接下来会弹出如下窗口,勾选“信任由此证书颁发机构标识的网站”

3、点击确定,证书即安装并信任成功

macOS

操作:

1、Charles-》Help-》SSL Proxying > Install Charles Root Certificate

2、会打开钥匙串,在钥匙串中找到“Charles Proxy...”,双击打开

3、在信任选项里,使用此证书时:选择“始终信任”,如下

图3

4、设置成功后关闭窗口时,会要求输入当前管理员密码来确认修改

5、重新启动safari,查看设置是否成功

iOS devices

1、首先要设置手机的wifi代理到Charles上

设置-》无线局域网-》当前连接的wifi,设置手动http代理

服务器为要Charles所在的电脑ip,Charles端口号默认是8888

图4

2、在手机端打开safari,输入: https://chls.pro/ssl,safari会提示你安装证书,安装完成如下

图5

3、如果是在iOS 10.3及以上系统版本,需要在通用>关于手机>证书信任设置中找到Charles证书,打开信任开关,更多信息可以参考官网文档(More information about this change in iOS 10).

ps:

描述文件与设备管理在iOS设置中的路径:设置-》通用-》描述文件

iOS Simulators

在iOS模拟器上安装Charles证书,首先先退出模拟器

1、打开Charles,点击Charles-》Help-》SSL Proxying > Install Charles Root Certificate in iOS Simulators,即会安装Charles根证书到你所有的iOS模拟器上

2、再次启动iOS模拟器时,就可以正常使用SSL Proxying

tvOS

这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档

Android

在Android内,要信任Charles SSL Proxying生成的 SSL 证书,需要在你的app内添加一些配置,也就是说你只能在自己的app内使用SSL Proxying。

关于网络安全配置详细的可见android官网文档

要添加的这个文件会覆盖系统默认的,能够使你的app信任已安装的CA

certificates(如 Charles根证书)。可以只将这个设置应用于debug包,以便宜生产包使用默认的信任配置

1、在你的app中添加文件res/xml/network_security_config.xml:

1

2

3

4

5

6

7

8

<network-security-config>

 <debug-overrides>

  <trust-anchors>

   <!-- Trust user added CAs while debuggable only -->

   <certificates src="user" />

  </trust-anchors>

 </debug-overrides>

</network-security-config>

2、在manifest中添加一个reference:

1

2

3

4

5

6

<?xml version="1.0" encoding="utf-8"?>

<manifest ... >

 <applicationandroid:networkSecurityConfig="@xml/network_security_config" ... >

    ...

  </application>

</manifest>

Google Chrome

在macOS中,参考上面macOS的说明。下面只适用于Windows

1、Charles-》Help-》SSL Proxying > Save Charles Root Certificate,保存为一个二进制文件(.cer后缀)到本地
2、在Chrome中,打开设置页,在设置页底部点击“高级”按钮打开高级选项,点击“管理证书”按钮
3、打开信任根证书tab,点击导入步骤1中保存的证书,根据提示导入,直到导入成功
4、导入成功后,步骤1中的证书文件就可以删除了

Java Applications

这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档

Python

这个用的比较少,这里就不多做描述,想要了解的可以直接看官网文档

抓取https请求Charles设置

上面安装好Charles根证书后,还需要在Charles中设置SSL Proxy才能正常抓取https的请求

1、点击Charles-》Proxy-》SSL Proxying Settings...

图6

2、在SSL Proxying Settings页中SSL Proxying项中,点击Add,添加一个全匹配的域名和端口号:*:443,并勾选“Enable SSL Proxying”,点击OK保存

图7

3、保存成功后,在上述浏览器或应用程序中即可正常抓取https请求

### 使用 Charles 在 PC 上抓取 HTTPS 流量 为了成功使用 Charles 抓取 HTTPS 流量,在完成基本的 HTTP 请求捕获设置之后,还需要额外配置来处理加密连接。 #### 启用 HTTPS 解密功能 进入 **Tools->Options->HTTPS** 菜单下,确保已勾选 "Decrypt HTTPS traffic"[^3]。此操作允许 Charles 对经过代理服务器的数据流进行解码,从而查看具体内容而不只是看到加密后的数据包。 #### 安装 SSL 证书 由于 HTTPS 协议涉及客户端与服务端之间的安全通信,因此需要安装由 Charles 自动生成的信任根证书到操作系统中以便能够正确解析这些会话。对于 Windows 和 Mac OS X 用户来说,启动 Charles 后程序通常会提示自动安装该 CA 根证书;如果未收到此类通知,则可以通过访问 `chls.pro/ssl` 来手动获取并按照指示完成安装过程[^2]。 #### 配置浏览器或其他应用程序信任自定义CA 为了让目标应用接受来自 Charles 的中间人攻击(MITM),即让其相信通过这个代理传输的信息仍是可信的安全链接,还需进一步调整特定环境下的SSL/TLS验证机制。例如在某些情况下可能要关闭严格模式或忽略证书错误警告(这取决于具体需求以及所面临的风险评估)。同样是在上述提到的选项页面里,“Ignore server certificate errors (unsafe)”也应被激活以减少不必要的干扰[^3]。 ```bash # 如果遇到无法正常加载网页的情况可以尝试重启网络适配器或者重新导入证书。 netsh winsock reset ``` 一旦完成了以上步骤,就可以像平常一样开启 Charles 中的录制开关开始监控指定设备发出的所有HTTP(S)活动了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinat_40572875

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值