51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 677|回复: 1
打印 上一主题 下一主题

[原创] 如何解决Charles乱码和SSL 代理?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-12-5 16:15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 草帽路飞UU 于 2022-12-5 16:19 编辑

在刚接触Charles进行抓包使用时,遇到了两个问题:

  1、Charles上抓的包出现了乱码;

  2、Charles开启SSLProxying代理后出现了手机无法上网或手机和电脑浏览器都无法上网的情况。浏览器提示证书不可用或过期。

  尝试了很久终于解决了这两个问题,下面记录一下处理历程。

  1、乱码问题解决





解决方案为:修改Charles.ini文件(可选);

  vmarg.5=-Dfile.encoding=UTF-8

  vmarg.6=-Dfile.encoding=UTF-8


2、Charles开启SSLProxying代理电脑浏览器后手机都无法上网问题
Charles想要抓取Https请求的包,必须要在电脑和手机上都安装Charles根证书。

  (1)安装SSL证书
选择“Help”->“SSLProxying”->“InstallCharlesRootCertificate”







到此,Charles证书就安装成功了。

  (2)防火墙配置
可以在电脑防火墙上看到

  路径为:网络和Internet--windows防火墙--允许应用通过防火墙,在“允许的应用和功能”列表上要保证CherlesWebDebuggingProxy的所有勾选框都是被勾选的。如果要更改这里的配置,需要先点

击一下“更改设置”按钮,然后删除按钮才会高亮显示。选中CherlesWebDebuggingProxy这一列可以进行设置和删除操作。

  (3)设置Charles的SSL代理
 1、回到Charles应用,点击工具栏的Proxy按钮--选择ProxySettings--设置代理端口并勾选上下面的两个复选框,特别是第二个复选框代表开启http代理明文传输。



2、选择AccessConctrolSetting,在这里可以控制访问设备。点击add可以添加需要抓包设备(pc或移动设备)的ip地址。设置好之后才能保证这些添加上的设备能够被Charles抓包。

  从截图的文字描述可以看到,安装Charles的计算机默认是被包含在访问控制列表的。访问列表默认展示为空,需要用户自己添加需要控制的设备的ip地址。



3、SSLProxyingSettings设置

  勾选enableSSLProxying复选框代表开启SSLProxying代理,并在include栏中添加域名和端口号。include中的列表项代表Charles能够展示这些域名的SSL请求和响应的明文。

  并且说明中也提示了我们Charles要想使用SSLProxying代理,需要进行SSLCertificates,即证书签名。这个我们在上面已经完成了。



StopSSLProxying按钮可以控制SSL代理的开关。


到此,PC端的设置都已经配置好了。

  (4)手机端配置网络的代理,并安装Charles证书
  4.1、手机端配置网络代理
手机端需要保证连接的wifi是和PC端在同一个局域网。

  手机端进入到设置--WLAN--找到已连接的wifi--长按该wifi,弹出修改网络--点击修改网络,然后设置代理模式为手动--填写服务器主机名和端口后。服务器主机名即PC端的ip地址,端口号即在Charles

应用中设置的Proxying端口号。

  到这一步,PC上就能看到手机端访问网络时的包数据了。但是对于https加密请求还需要安装SSL签名证书。

  4.2、安装CharlesCA证书
Charles应用中点击help--SSLProxying--点击installCharles...Browser出现弹出提示。



弹窗提示我们需要配置设备代理,这个我们在上面已经配置过了。然后需要在浏览器中输入chls.pro.ssl下载和安装证书。假如你是ios10以后的机型,还需要进入到设置中信任Charles证书。

  4.3、下载并安装Charles证书
手机端连接上代理后,(应该是需要在Charles应用中先关闭SSLProxying代理,否则手机端是无法下载证书的,这里我不太确定是否要执行这一步)在浏览器中输入框输入chls.pro.ssl会弹出弹框,点击

下载。

  我当时在安卓手机上下载成功后,直接点击该证书文件显示无法打开。然后我进入到手机设置--安全--更多安全设置--加密和凭据--从存储设备安装--展示了CA证书,VPN和应用用户证书,WLAN证书--

不知道安装哪种的情况下,我把这三种类型挨个都选择了,进入到存储之前浏览器下载的证书目录下,点击证书文件,弹出一个弹窗提示为证书命名,命名为Charles即可,然后点击确定即安装成功了。

  这时候你会发现在设置的“加密和凭据”页选择受信任的凭据--再选择用户tab--就能看到CharlesProxyCA证书了。

  并且在“加密和凭据”页点击“用户凭据”,也能看到我们安装的证书。

  4.4、ios设备进入到设置中信任CharlesCA证书
  (5)https请求和抓包
这时候,再访问网络,比如百度随便输入一个内容后点击搜索,就可以再Charles上看到请求和响应包的数据,并且没有出现乱码了。










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 20:09 , Processed in 0.069373 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表