如何使用charles对Android Https进行抓包

 
Charles.png

charles是一款在Mac下常用的截取网络封包工具,对Android Http进行抓包,只要对手机设置代理即可,但对Android Https进行抓包还是破费一些功夫,网上的资料解释的也不清楚,今天在这里总结一下,希望对同样遇到问题的朋友带来一些帮助。

原理

 

man-in-the-middle.png

Charles实现对Https进行抓包,使用的原理就是中间人技术(man-in-the-middle)。Charles会动态生成一个使用自己根证书签名的证书,Charles接收web服务器的证书,而客户端浏览器/客户端 接收Charles生成的证书,以此客户端和Charles之间建立Https连接,Charles和Web服务器之间建立Https连接,实现对Https传输信息的抓包。如果Charles根证书不被信任则无法建立Https连接,所以需要添加Charles根证书为信任证书。

 

如何使用

给Mac安装证书。
打开Charles,在Menu选择SSL Proxying > Install Charles Root Certificate,Keychain Access(钥匙访问串)被打开,我们可以看到Charles Certificate已经被安装,如图:


Charles Certificate被安装.png

信任证书
但此时该证书并没有被信任,双击该行弹出证书详情,选择“Always Trust”。


信任证书

给手机安装证书
打开Charles,在Menu选择Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser,弹出提示框,如图:

提示框.png

安装提示进行配置,需要注意的是192.168.0.101是我演示时候的IP,你要改成你自己的IP地址。IP配置之后用手机浏览器打开http://charlesproxy.com/getssl 下载证书。如果是Android设备,选择设置->从储存设备安装。

 

  • 开启SSL代理功能
    在Menu选择Proxy->SSL Proxying Setting,选中Enable SSL Proxying,在Locations里面添加要使用SSL代理的网站,端口号输入443,如果需要匹配所有的HTTPS网站则输入 * 号即可。现在即可拦截Https的数据包。

  • 参考资料

    SSL PROXYING
    SSL CERTIFICATES

    可以随意转发,也欢迎关注我的简书,我会坚持给大家带来分享。

    小礼物走一走,来简书关注我

    赞赏支持
     
     工具
    96不二先生的世界

    写了 14942 字,被 158 人关注,获得了 175 个喜欢

    [微博](http://weibo.com/jhg19900321)
    Web note ad 1
     
      
     

     

     
     http://www.jianshu.com/p/ecd065ac0440按这个教程安卓小米安装成功了

     

    2017.06.21 17:44  回复
    posted @   KingWang588  阅读(2344)  评论(0编辑  收藏  举报
    编辑推荐:
    · Linux系列:如何用 C#调用 C方法造成内存泄露
    · AI与.NET技术实操系列(二):开始使用ML.NET
    · 记一次.NET内存居高不下排查解决与启示
    · 探究高空视频全景AR技术的实现原理
    · 理解Rust引用及其生命周期标识(上)
    阅读排行:
    · 单线程的Redis速度为什么快?
    · 展开说说关于C#中ORM框架的用法!
    · Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
    · SQL Server 2025 AI相关能力初探
    · 为什么 退出登录 或 修改密码 无法使 token 失效
    点击右上角即可分享
    微信分享提示