charles抓包详解http 与 https

包工具多种多样,比较好使的还是Charles和Fiddler,下面就简单的介绍下HTTPS的相关原理并以Charles为例来介绍下如何抓取HTTPS协议的包

1.下载charles

 可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/    根据自己的操作系统下载对应的版本,然后进行安装,然后打开charles工具

2.设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器)

  1).查看默认端口    Proxy->Proxy Settings  在这个页面会看到HTTP Proxy的默认端口是8888   我们不需要修改,只需要知道有这个值就行

  2).查看当前电脑的ip ,查看方式cmd ,输入命令 ipconfig,   例如我这里的是:172.16.91.231

  3).知道了默认端口跟ip地址,我们就可以手机上设置代理了。设置步骤我录制了gif动画。(我用的是genymotion模拟器,真机也是一样的)

      

完成了以上两个步骤就可以抓到http请求的数据了,效果图如下:

 如果遇到unknown的情况是无法处理https,需要安装证书,进行处理,请看面的步骤

此后步骤适用于抓取https协议的请求 

3.设置charles ssl代理,抓取https协议的包

   Proxy->SSL Proxy Settings    弹出一个ssl代理设置界面

   1).Enable SSL Proxying复选框打上勾

   2).添加你想要的设置代理的域名,端口默认443

   设置过后效果图如下:

   

   

4.手机下载ssl证书

   1).Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser...   

       会弹出一个提示框,如下显示:

       

       浏览器输入这个地址即可下载证书,记住要用Android或iOS自带的浏览器.   地址是:http://chls.pro/ssl ,有个注意的点,iOS需要手动去开启证书,否则证书不起作用

    2).然后按照他的提示安装证书即可.

做完第三步跟第四步就可以抓包https数据了。

不能抓取包数据的情况:

1、遇到代码内部加减密的情况

2、使用插件的情况

下面是加减密的请求的截图,未获取接口名称入参与出参都是加密后的非明文

参考文章:http://www.cnblogs.com/yishaochu/p/5078618.html

原文地址:https://www.cnblogs.com/unknows/p/7566036.html