好久没有用Charles总是不记得怎么做https的抓包,网上文档也比较杂,自己写一篇来记录一下。
Charles主要用途是用来抓取https请求,除了浏览器中一目了然的请求,软件/手机的请求就比较复杂无法被看见了,因此需要用抓包软件来看。
Charles进行https抓包的原理实际上是劫持,证书信任设计留了一个后门,支持通过客户端主动信任根证书,方便各种测试,不过企业内网证书设计看起来真的什么都看得到呢。
配置
版本:Charles 5.0 + Win10 (Win11同理)
Charles证书安装
Windows比较复杂的是安装证书,相比之下macOS简单很多
打开Charles,选择Help - SSL proxying,正常如果是macOS,Install Charles Root Certificate是可以使用的,但是Windows系统下会报错,显示“无效的公钥安全对象文件”,实际上需要手动下保存证书并且安装至系统中。
在Help选项中,选择Save Charles Root Certificate存储证书,建议不修改保存的位置,这个保存我的版本似乎有些问题,存储的文件夹永远是默认的目录。

接着安装证书至系统,打开Microsoft管理控制台,可以通过win + R
,输入mmc
打开
选择文件 - 添加/删除管理单元

打开弹窗后,选择证书 - 添加

这时会弹出证书管理单元选择,一般选择我的用户账户就够用了

确认保存后,界面左侧会出现一个证书,选择受信任的根证书颁发机构,右键所有任务 - 导入,选择刚才保存的证书,就可以啦

这时,点击证书查看,可以看到Charles颁发的证书已经安装了

Charles配置
证书的配置主要是让客户端请求信任Charles进行证书劫持,下一步是需要配置Charles进行实际的劫持操作。
Proxy settings
Proxy settings是Charles抓包的基础原理,它实际上是让电脑内的网络请求都转发到Charles的服务器内进行代理
目录打开Proxy - Proxy settings,确保开启了http proxy, socket proxy非必须

SSL proxying setting
抓包https必须开启这个,Proxy - SSL proxying setting中配置对应的域名,我这里就偷懒用*匹配了所有网站。

配置完成后应该就可以看到https抓包了