网上关于Charles介绍和安装的文章特别多,笔者也是搜罗各方大神分享的经验,先了解其原理和作用,再安装并实际操作抓取http和https包,最后得到的感受是,因为这样厉害的工具的存在,网络上的消息确实非常不安全,连具有加密功能的https协议在信息传输过程中,通过Charles也可以获取API的方法,url,请求消息和响应消息。
该问题发生前,Charles已经安装和破解成功,相应内容可以看文末链接。因为安装成功后,Charles已默认配置好http协议包的抓取,实际操作很顺利,初次使用,很是惊艳!但是当抓取的包是https协议时,就不那么好玩了,每个接口下都是“Unknown”,笔者有点懵~
研究一番后发现,https抓包需要安装SSL证书,网上大部分是关于手机上如何抓取https协议包,而关于windows系统下抓取浏览器访问Web应用的https协议包的配置和操作比较少。于是笔者猜想,手机和浏览器抓https的原理应该是一致的,可以借鉴手机SSL的配置来完成浏览器上SSL的配置。OK,现在进入本篇文章的正题。
1、电脑安装SSL证书
通过Charles安装,进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate ,会打开证书,安装进去,下图是证书已经安装成功的结果。

注意:
(1)由于当前版本较高,ssl证书已经在电脑上了,但如果碰到进入相应界面,提示“证书不存在”,可以到官网去下载与版本配套的证书
https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/
(2)按照提示步骤一步一步安装完ssl证书以后,返回证书界面,会看到 此根证书不被信任,在证书上右键 - 显示详情 ,展开信任 选择 始终信任,然后点击左上角的关闭,系统会弹出授权提示框,授权同意修改,回到列表,稍等,证书就刷新了
(3)在如下界面可以查看Charles证书安装失败原因

2、浏览器安装ssl证书
进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate on a Mobile Device or Remote Browser,如下图

弹出如下提示框

根据提示,在浏览器地址栏输入“chls.pro/ssl”下载证书

在浏览器上安装证书,以chrome为例

至此,电脑和浏览器的证书都安装成功
3、Charles使能https抓包功能
进入Charles - 》 Proxy - 》 SSL Proxying Settings

打开SSL设置界面,将图上所示复选框选中

点击“Add”按钮,在弹出框的 “Host” 和 “Port” 都输入“*”,最后点击OK,根据提示,这样配置可以抓取所有的https包

到此配置完毕,再次抓取https报文,就不会全部都是unknown了
4、Q&A
如此配置后,当Charles在运行时,没有安装ssl的证书的浏览器访问Web应用会出现问题

浏览器访问Web应用失败,可以清晰看到失败原因为证书认证失败,而证书机构为Charles,解决办法有两个,
(1)关闭Charles
(2)在浏览器上安装ssl证书
最后,贴上一些关于Charles的原理和安装的链接,大家可以根据需要浏览
charles抓包的安装,使用说明以及常见问题解决(windows) - CSDN博客
网友评论