如果想要通过charles抓取https请求的内容及返回,是需要安装相应的证书及做相应的设置才可以,不然抓包工具不能正常的显示请求的内容及返回的情况,就如下图显示,都是unknown。
具体步骤如下:
电脑端安装证书
条件:首先本机电脑需要已经安装charles
打开charles,点击help->SSL Proxying->Install Charles Root Certificate,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/035c07cc885043459ffe82391227b0fd.png)
接下来会弹出安装窗口,如下图
![](https://i-blog.csdnimg.cn/blog_migrate/31b7e571c24f0b1c7fee4349d3c3d08a.png)
点击安装证书进入证书导入向导,存储位置根据自己要求选择(我选择了存储在本地计算机),点击“下一步”
这时向导提示选择证书存储,这里选择“将所有的证书都放入下列存储”,点击“浏览”,在弹出的选择证书存储窗口中,选择“受信任的根证书颁发机构”(其实在一开始的证书窗口中已经提示:要启用信任,。。。。。。。。)
![](https://i-blog.csdnimg.cn/blog_migrate/7e519ee36eaa7aa41486306ce43a1a2c.png)
接着继续下一步,提示证书导入完成后,点击完成,结束安装
安装完毕后的证书窗口如下图显示
手机端安装SSL证书
打开charles,点击help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser...
![](https://i-blog.csdnimg.cn/blog_migrate/fc44a0564372448d3fb37d5e5037e978.png)
这时会弹出一个窗口,如下图所示
设备上需要设置http代理IP及端口(这一步不再详细描述)
然后,在浏览器中打开http://charlesproxy.com/getssl下载及安装
![](https://i-blog.csdnimg.cn/blog_migrate/9415d1a8512788bde515522a9d8a7917.png)
在Safari浏览器中输入地址后,就会进入下图显示的页面
提示证书“尚未验证”,点击右上角的“安装”
![](https://i-blog.csdnimg.cn/blog_migrate/91516cc14ceda6f91fba661785ecbe51.png)
完成以后,显示“已验证”
![](https://i-blog.csdnimg.cn/blog_migrate/77966a6b05dc74a3d341a9483c67a95e.png)
安装完成的证书,可以在设置-->通用-->描述文件中看到
手机端和电脑都安装完相应的证书以后,接下来需要在charles上进行相关的设置
如下图,点击菜单栏中Proxy->SSL Proxying Setting..
![](https://i-blog.csdnimg.cn/blog_migrate/bc89239ebab9798574d13db3630c7131.png)
这时会弹出SSL Proxying Settings设置窗口
![](https://i-blog.csdnimg.cn/blog_migrate/cef2c6aeec9be693be10a26e58b12fa7.png)
首先要将“Enable SSL Proxying”勾选,表示开启SSL
点击”Add“按钮,添加需要抓取的网站
![](https://i-blog.csdnimg.cn/blog_migrate/427bf2b86d8879e3cf18e395848fd5ee.png)
以上都设置OK以后,再去抓取https的请求及响应,具体的消息体都能正常响应了
![](https://i-blog.csdnimg.cn/blog_migrate/50294b93255d3cbc23450e7d65e40a9b.png)
以上基于iOS的通过charles抓取https的方法
但如果是基于Android的话。有些变动
浏览器中输入地址
http://chalesproxy.com/getssl
直接下载在手机上,然后在手机 设置→安全→从内置存储安装→选择下载好的证书如图
![](https://i-blog.csdnimg.cn/blog_migrate/ab987e33831da95c606eef6f339e00f2.png)