您当前的位置:首页 > 计算机 > 软件应用 > 网络应用

Charles 抓包以及解决抓取 HTTPS 请求 unknown 的问题

时间:12-14来源:作者:点击数:

在 Mac 下使用 Charles 工具进行抓包,然后抓取 HTTPS 请求时,出现 unknown,无法解析的情况如何处理呢?

请继续往下看,将会详细介绍一下整个过程...

一、安装 Charles

过于简单,省略一万字...

二、安装证书

包括电脑端和手机端,这也是抓取 HTTPS 请求的关键所在。

1. 电脑端

打开 Charles,然后在菜单栏选择 Help → SSL Proxying → Install Charles Root Certificate,将证书安装至电脑,并打开钥匙串访问

证书安装后,默认是不被信任的,所以我们需要将其设置为信任。

钥匙串中找到该证书 Charles Proxy CA,并设置为始终信任,然后保存。

这样电脑端证书就安装完成了。

2. 手机端

下面以 iOS 设备为例,而 Android 端各定制系统安装证书的方式可能略有差异。

同样在菜单栏选择 Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser,将会有以下提示。

请注意,手机与电脑需连接在同一局域网内。

在手机打开:设置 → Wi-Fi → 打开所连 WiFi → 设置 HTTP 代理 → 选择手动,接着将 IP 地址以及端口填写进去,然后存储即可。

输入过程中,服务器一栏 . 之间可能会自动插入空格,手动删除一下。

接着打开系统 Safari 浏览器(其他浏览器可能无法唤起安装证书的弹窗),输入地址 chls.pro/ssl 打开页面,会自动唤起安装描述文件的弹窗,选择允许

紧接着,前往:设置 → 通用 → 描述文件 → 选择对应描述文件 → 安装

还有最重要的一步,很多人就是忽略了该步骤,导致安装完证书后,抓取 HTTPS 请求仍是 unknown。

前往,设置 → 通用 → 关于本机 → 证书信任设置(滑到屏幕最下面) → 将 Charles 证书勾选上即可。(PS:我截图有两个是证书是两台不同的机器)

三、Charles 配置

Charles 默认是 8888,不占用其他服务端口情况下,不修改问题也不大,根据实际情况自行调整。

还有一个非常重要的配置是 SSL Proxying Settings,勾选上 Enable SSL Proxying,添加 Include。否则即使添加了证书,抓取 HTTPS 也是 unknown。

这里根据实际需求来设置 Include 或者 Exclude,我这里设置为 *.443,也可以设置成 *.*。(通配符 * 是指所有域名或者端口)

四、效果

这样我们就可以愉快地玩耍了

五、关于 Android 无法抓包的问题

由于挺久没有怎么折腾过 Android 手机了,下面这块内容源自网上整理的,也没有时间去实际测试过。

由于 Android 机型众多,各定制系统差别也不同,安装证书在不同 Android 版本也有限制,导致在使用 Charles 进行抓包时要比 iOS 难很多。

Android 7.0 之后默认不信任用户添加到系统的 CA 证书:

To provide a more consistent and more secure experience across the Android ecosystem, beginning with Android Nougat, compatible devices trust only the standardized system CAs maintained in AOSP.(源自 Android Developers Blog(link:https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html" rel="nofollow))

换句话说,就是对基于 SDK24 及以上的 APP 来说,即使你在手机上安装了抓包工具的证书也无法抓取 HTTPS 请求。

下面提供几个链接:

六、其他

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐