当前位置: 首页 > news >正文

Charles乱码和SSL 代理问题解决

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

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

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

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

1、乱码问题解决

在这里插入图片描述

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

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

在这里插入图片描述

 

2、Charles开启SSL Proxying代理电脑浏览器后手机都无法上网问题

        Charles想要抓取Https请求的包,必须要在电脑和手机上都安装Charles 根证书。

(1)安装SSL证书

        选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”

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

(2)防火墙配置

        可以在电脑防火墙上看到

        路径为:网络和Internet--windows防火墙--允许应用通过防火墙,在“允许的应用和功能”列表上要保证Cherles Web Debugging Proxy的所有勾选框都是被勾选的。如果要更改这里的配置,需要先点击一下“更改设置”按钮,然后删除按钮才会高亮显示。选中Cherles Web Debugging Proxy这一列可以进行设置和删除操作。

(3)设置Charles的SSL 代理

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

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

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

 3、SSL Proxying Settings设置

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

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

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

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

(4)手机端配置网络的代理,并安装Charles证书

        4.1、 手机端配置网络代理

        手机端需要保证连接的wifi是和PC端在同一个局域网。

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

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

        4.2、 安装Charles CA证书

                Charles应用中点击help--SSL Proxying--点击install Charles...Browser出现弹出提示

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

        4.3、 下载并安装Charles证书

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

        我当时在安卓手机上下载成功后,直接点击该证书文件显示无法打开。然后我进入到手机设置--安全--更多安全设置--加密和凭据--从存储设备安装--展示了CA证书,VPN和应用用户证书,WLAN证书--不知道安装哪种的情况下,我把这三种类型挨个都选择了,进入到存储之前浏览器下载的证书目录下,点击证书文件,弹出一个弹窗提示为证书命名,命名为Charles即可,然后点击确定即安装成功了。

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

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

        4.4、 ios设备进入到设置中信任Charles CA证书

(5)https请求和抓包

        这时候,再访问网络,比如百度随便输入一个内容后点击搜索,就可以再Charles上看到请求和响应包的数据,并且没有出现乱码了。

相关文章:

  • SharedPreference使用
  • Javaweb安全——Shiro漏洞利用
  • java基本微信小程序的高校科研管理系统 uniapp小程序
  • C++ 20 协程(一)
  • 小米手机抓取hci log
  • 【Java深入学习】并发常见方法的注意事项
  • 微信小程序开发入门与实战(数据监听)
  • 【论文阅读】提升的自动作文评分通过Prompt预测和匹配
  • JPA-Specification常用条件查询构造方式
  • 瑞吉外卖(19) - 新增套餐业务开发
  • Android 的定位分层架构
  • 基于docker搭建es集群
  • 2.可视化基础(上)
  • 解决Vue项目中ESLint和Prettier冲突问题[Vue.js项目实践: 新冠自检系统]
  • 【misc】buu-面具下的flag——zip伪加密+用NTFS流隐藏文件
  • 【前端学习】-粗谈选择器
  • angular2 简述
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • GraphQL学习过程应该是这样的
  • KMP算法及优化
  • LeetCode算法系列_0891_子序列宽度之和
  • Redis 中的布隆过滤器
  • 订阅Forge Viewer所有的事件
  • 分类模型——Logistics Regression
  • 浮动相关
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #DBA杂记1
  • #define、const、typedef的差别
  • (33)STM32——485实验笔记
  • (编译到47%失败)to be deleted
  • (一)UDP基本编程步骤
  • (转载)虚函数剖析
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • ::前边啥也没有
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @ModelAttribute注解使用
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [.NET]桃源网络硬盘 v7.4
  • [1] 平面(Plane)图形的生成算法
  • [Android] 修改设备访问权限
  • [C++] 统计程序耗时
  • [C++]18:set和map的使用
  • [C++]四种方式求解最大子序列求和问题
  • [CTO札记]盛大文学公司名称对联
  • [HDU] 1054 Strategic Game 入门树形DP
  • [HDU]2161Primes
  • [Oh My C++ Diary]头文件使用之math.h与cmath
  • [OPEN SQL] 修改数据