Charles踩坑记录

作者: 编程小翁 | 来源:发表于2017-11-08 15:54 被阅读159次

Charles的妙用在于能够伪装成中间人干预https通信。它使用了中间人代理的方法(man-in-the-middle,也常作为一个黑客攻击手段),代替你的app接受server的证书,然后使用这个证书通过SSL和server通信;同时,Charles会动态的生成一个对应的证书(用Charles的CA证书签名),然后使用这个证书和你的app通信,这样就完成了一个中间人代理,从而可以把app和server的https包给抓到和解码出来。

一、真机安装根证书

总体步骤是:safari安装根证书 ---> 添加需要检测的域名列表 ---> 抓包分析

1、首先要安装Charles的根证书,用iOS设备的safari打开http://www.charlesproxy.com/getssl,会弹出一个提示框让你安装证书,确认安装即可。然后到设置->关于本机->证书信任设置中信任Charles根证书

2、打开菜单Proxy -> SSL Proxying Settings...,在弹出的设置框中,勾选Enable SSL Proxying,同时添加需要代理的域名,端口号统一为443(这里直接设置成了*来代理全部https域名)

3、可以通过breakpoint修改请求或者返回数据

二、模拟器安装根证书

模拟器安装根证书比较简单:

image

坑:安装后需要重启模拟器才能正常抓HTTPS包

三、MAC安装根证书

直接在Charles的Help菜单中安装;安装完成后去系统的钥匙串访问中右键证书信任它。

四、可能踩到的坑

1、没有安装Charles的证书,却开启了Enable SSL Proxying,那么会造成所有的https访问都会失败,同时Charles会在每个https请求的overview那里友好的提示你需要信任Charles的根证书:“You may need to configure your browser or application to trust the Charles Root Certificate”,意思是根证书安装失败。这时重走第1步就行。

image

2、通过断点的方式修改请求时,客户端的请求超时计时器一直在走,因此可能导致超时,这点要注意下。

相关文章

  • Charles踩坑记录

    Charles的妙用在于能够伪装成中间人干预https通信。它使用了中间人代理的方法(man-in-the-mid...

  • charles抓包踩坑记录

    报错1 SSL Proxying not enabled for this host:enable in Prox...

  • 2020-10-19随笔 踩坑0传值

    踩坑:当值传入0时,if条件判断时候会自己转换,记录踩坑。

  • Weex入门踩坑记录

    Weex入门踩坑记录

  • Flutter 开发记录

    Flutter 开发踩坑记录(干货总结)

  • 日常bug记录

    想记录日常碰到的bug,坑踩多了,以后应该碰到坑就比较容易处理或者会少踩坑,后面会慢慢记录bug,截图bug以及最...

  • 没事请多踩踩坑!

    人生事不尽意,别人挖坑我踩坑。 请在这里留下你的踩坑记录,让别人少入坑。

  • Windows下GithubPages博客快速搭建

    Windows下开发坑总是比较多的,但是本人没Mac,只好踩一遍坑记录下。本文主要是安装过程&踩坑记录,故不对细节...

  • Retrofit Https踩坑记录

    Retrofit Https踩坑记录 前言 新司机上路,坑多,本文重点是踩坑,不详细讲retrofit用法,本文不...

  • 个人博客标签分类

    【小结】零碎的小结 【踩坑记录】报错等记录,防止再度踩坑 【总结】比较完整的总结 【想法】自己的一些想法和推论 【...

网友评论

    本文标题:Charles踩坑记录

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