美文网首页
Charles4.2.8抓取https包

Charles4.2.8抓取https包

作者: 高大强19 | 来源:发表于2020-03-06 17:22 被阅读0次

    关于Charles最好先了解其原理和作用,再安装并实际操作抓取http和https包,最后得到的感受是,因为这样厉害的工具的存在,网络上的消息确实非常不安全,连具有加密功能的https协议在信息传输过程中,通过Charles也可以获取API的方法,url,请求消息和响应消息。

    一.  注意事项

    在Android7之后其系统Google 推出更加严格的安全机制。 不能抓到https包了. 这个问题有2个解决办法.

    1. 如果是自己开发的apk, 可以在代码中增加代码,至于具体怎么配置,Google 官方 给出超级全面解释 :

    让 Android 开发加入以下代码并重新打包,就可以抓到 Android 7.0 以上系统 https 的包了。不展开讨论,能用就行。这是一种既简单又安全的办法,在调试时可以信任的证书(正式包不可用)。

    2. 抓第三方 app 的 https 包

            使用 Android 7.0 以下的系统,安装应用,并抓包.

    成功案例: 魅族5s + charles4.2.8

    二.  http抓包

    不再赘述, charles 和 手机 配置即可.

    三. https抓包

           当抓取的包是https协议时,就不那么好玩了,每个接口下都是“Unknown”.

    https抓包需要安装SSL证书,网上大部分是关于手机上如何抓取https协议包,而关于windows系统下抓取浏览器访问Web应用的https协议包的配置和操作比较少。手机和浏览器抓https的原理应该是一致的,可以借鉴手机SSL的配置来完成浏览器上SSL的配置。

    1、电脑安装SSL证书

    通过Charles安装,进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate ,会打开证书,安装进去,下图是证书已经安装成功的结果。

    注意:

    (1)由于当前版本较高,ssl证书已经在电脑上了,但如果碰到进入相应界面,提示“证书不存在”,可以到官网去下载与版本配套的证书

    (2)按照提示步骤一步一步安装完ssl证书以后,返回证书界面,会看到此根证书不被信任,在证书上右键 - 显示详情 ,展开信任 选择 始终信任,然后点击左上角的关闭,系统会弹出授权提示框,授权同意修改,回到列表,稍等,证书就刷新了

    2、

    2.1 电脑端抓https - 浏览器安装ssl证书

    进入Charles-》Help-》SSL Proxying-》Install Charles Root Certificate on a Mobile Device or Remote Browser,

    浏览器ssl证书下载地址

    根据提示,在浏览器地址栏输入“chls.pro/ssl”下载证书

    浏览器ssl证书文件

    在浏览器上安装证书,以chrome为例

    Chrome安装ssl证书

    至此,电脑和浏览器的证书都安装成功

    2.2 手机端抓https - 设置中安装ssl证书

    a.获取地址:

            点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device,出现弹窗得到地址 chls.pro/ssl (不用动,这个地址要输入到手机浏览器)。

    b. 手机安装SSL证书:

    在手机浏览器输入地址 chls.pro/ssl  就会出现如下证书安装页面,无论跳出什么页面和弹窗都点击安装,直至完成。一定要记住证书安装在哪个目录下了!!     我下载的是pem文件,据说crt文件也可以.     留意导入到哪个文件夹下。

    注意1:① 设置好手机HTTP代理;② 电脑上Charles要开着;不然输入这个网址 chls.pro/ssl 安装不了证书,打开的是Charles官网。③ 一定要记住证书安装在哪个目录下了!

    3. 手机信任证书

    魅族手机:设置--指纹和安全--设备管理和凭证--从存储盘安装

    荣耀8 : 设置---高级设置---安全----从SD卡安装---内部存储空间,

    找到之前证书的安装位置,点击证书,弹出为证书命名,命名好之后点击确定。

    2.3iOS抓https

    a. Safari浏览器 打开chls.pro/ssl  下载证书,

    [重要] 在设置 -- 描述文件  中, 安装 描述文件, 输入密码, 安装成功后,显示"已验证"

    打开 在:关于本机 -- [滑到最下] 证书信任设置

    3、Charles使能https抓包功能

    进入Charles - 》 Proxy - 》 Proxying Settings

    Charles设置ssl

    打开SSL设置界面,将图上所示复选框选中

      ② 点击 Proxy -> SSL Proxying Settings...,勾选 Enable SSL Proxying,点击 Add。Host 设置要抓取的 https 接口

    网络报文过滤

    到此配置完毕,再次抓取https报文,就不会全部都是unknown了

    4、Q&A

    如此配置后,当Charles在运行时,没有安装ssl的证书的浏览器访问Web应用会出现问题

    浏览器访问Web应用失败,可以清晰看到失败原因为证书认证失败,而证书机构为Charles,解决办法有两个,

    (1)关闭Charles

    (2)在浏览器上安装ssl证书

    相关文章

      网友评论

          本文标题:Charles4.2.8抓取https包

          本文链接:https://www.haomeiwen.com/subject/bgswrhtx.html