admin管理员组文章数量:1122850
文章目录
- 背景
- 操作原理
- windows 安装Charles
- Charles配置
- 第一步:配置HTTP代理,这步与抓取HTTP请求是一样
- 第二步:配置SSL代理
- 第三步 :为手机配置代理
- iPhone 代理配置
- Android 代理配置
- 第四步:安装根证书
- iPhone 安装charles证书
- Android 安装charles证书
- windows 安装charles证书
- 抓包
- 正常抓包
- 抓包乱码
背景
后端小伙伴接口文档没写,问接口时,回复说web已经实现了,抓包看接口和参数。虚心的应了句,试试看。结果也不是如此,支付下单的后端接口到能直接调用微信支付的仅在微信内打开h5才能自然支付,此时抓包不再是f12的事情了。需要使用代理,本文主要讲windows 上Charles抓手机上的https包,包括Android 和 ios。
操作原理
关键的操作思想:
- 构造一个中间人代理,它有能力完成TLS/SSL握手
- 弄到一个根证书,并用它生成签名认证的代理服务器证书
Charles就是一个理想的中间人,它支持SSL握手,可以自动根据根证书生成一个签名的服务器证书,并且它的官网为我们提供了一个根证书。
我们要做的就是在客户端安装好这个根证书,然后让我们的操作系统信任它。对App来说,需要设法在IOS或Android上装上这个官网提供的根证书。
完成上述步骤后,App再指定Charles(电脑)为它的代理服务器,这时,App(或手机浏览器)请求的服务器证书就是Charles自动生成的代理服务器证书。如果Charles的根证书已被信任,这个自动生成的代理服务器证书是有效的,使用它App和Charles的TLS握手可以顺利完成。
windows 安装Charles
官网下载或其他网站下载都可以,官网现状是30天免费。
下载完成后双击运行,一直下一步直到安装结束。
Charles配置
第一步:配置HTTP代理,这步与抓取HTTP请求是一样
选择在8888端口上监听,然后确定。勾选SOCKS proxy,还能截获到浏览器的http访问请求。
说明:这里的8888端口作用是监听端口,手机设置代理时就要填写这个端口。
第二步:配置SSL代理
在charles的 Proxy选项选择SSL Proxy Settings
接着在弹出的对话框中点击add,添加需要监视的域名。域名支持 *号通配符,如:抓取所有的https请求,可以填写 *:443
如果想要抓取qq的域名,可以填写 *.qq
鄙人就填了*:443,外加一个18043端口
第三步 :为手机配置代理
在手机无线中配置手动代理,输入安装Charles的电脑的网络地址,端口填8888(上文中提到过)。
iPhone 代理配置
我的是iphone12,系统14.7
-
设置 - 无线局域网 找到当前网络,点击信息
-
接着拉到底
-
打开配置代理,选择手动,填写电脑ip(图中为我的IP,请修改为your电脑ip),监听端口(8888)进行配置,然后记得存储(保存)
Android 代理配置
我的华为 nova3e Android 9
- 设置 - 无线与网络 - WLAN 找到当前连接的网络并长按,选择修改网络
- 勾选 显示高级设置 ,然后显示代理后选择手动
- 设置代理服务器后记得保存
第四步:安装根证书
这里安装根证书是指Charles的根证书,包括电脑和手机都需要安装。手机安装证书时,必须执行到了上面第三步,手机已经设置好了代理(此时不能访问百度或其他网站,不要慌)。
iPhone 安装charles证书
-
在Safri上打开Charles的根证书下载网址: chls.pro/ssl 。
-
下载完之后会提示 到设置app中查看描述文件(证书),点击关闭
-
设置 - 通用 中可以找到 "描述文件"选项,并打开
-
找到刚才下载的证书,点击安装,安装过程中需要输入屏幕密码,没有需要设置屏幕密码
-
此时会有提示,只管继续安装
安装成功后如下:
-
去设置信任(非常关键)
设置 - 通用 - 关于本机, 拉到底后看到 证书信任设置 点开
开启证书信任:
Android 安装charles证书
-
在自带浏览器上打开Charles的根证书下载网址: chls.pro/ssl 。前提也是Windows charles 先配置好代理(完成第二第三步),手机网络设置好代理服务器。
下载后无法打开无法识别(不要慌)
-
设置 - 安全和隐私 - 更多安全设置 - 加密和凭据
接着选择 ”从存储设备安装“
再选择下载的证书文件
-
安装证书,需要输入屏幕密码或设置屏幕密码(没有的话),弹框中选择WLAN
-
安装成功后可以在 ”用户凭据“中查看
至此Android 证书安装完成,可以在 受信任的凭据 - 用户 中看到刚才的证书是受信任的
windows 安装charles证书
-
charles 菜单 help - SSL Proxying - Install Charles Root Certificate
-
弹出如下提示框,选择安装证书
安装过程中不要选择个人用户,要选本地计算机(足够的权限)
-
选择及那个所有证书放入指定的受信任的存储区
-
安装完成后可以查看证书的详细信息和路径
抓包
手机代理配置好,证书配置好,手机开始访问期望的接口或网站
正常抓包
能看到明文的参数和响应数据
抓包乱码
- SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations
点击后面的Notes查看原因:
这样提示是因为没有开启ssl(https) 的代理,这样去开启
重新开始抓包即可(可不重启charles),需要手机刷新页面
- 加密数据
这种情况下是接口开发人员把数据加密传输的,要解密已经不是本文要讲的内容。
版权声明:本文标题:Charles抓取HTTPS Windows Android iOS 图文详细 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1725048995a994449.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论