天天看点

Charles抓取https协议的方法

Charles截取Https 协议相关的内容时,会出现乱码。解决方案是需要安装 Charles 的 CA 证书。

因为Android 7.0以上系统做了安全限制,不能随意进行抓包。解决方案可以参考另一篇文章:https://blog.csdn.net/alice_tl/article/details/79038133

因此这篇文章只适用于ios的全部系统,以及Android 7.0以下的操作系统,具体步骤如下。

步骤一:电脑安装SSL证书

在 Mac 电脑上安装证书。点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,然后输入系统的帐号密码,即可在 KeyChain 看到添加好的证书。如下图所示:

Charles抓取https协议的方法

进入电脑的系统设置,信任证书。

Charles抓取https协议的方法

步骤二:启用SSL Proxying

需要注意的是,即使是安装完证书之后,Charles 默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 Https 网络请求,可以在该请求上右击,选择 SSL proxy

步骤三:手机上安装证书

抓取移动设备中的 Https 链接

点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”

Charles抓取https协议的方法

弹出需要手机设备上访问http://charlesproxy.com/getssl下载证书的提示。如下图所示:

Charles抓取https协议的方法

手机上连接好Charles代理后,手机浏览器中访问地址http://charlesproxy.com/getssl,即可打开证书安装的界面

Charles抓取https协议的方法
Charles抓取https协议的方法
Charles抓取https协议的方法
Charles抓取https协议的方法

安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项。

另外,好多小伙伴都按照上述步骤操作了,发现iphone还是抓取不到https的包,可能是因为iphone的这个设置:

进入到关于手机》证书新人设置页面,信任证书,即可。

Charles抓取https协议的方法