美文网首页开发工具集合IT技术新名字
如何使用charles对Android Https进行抓包

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

作者: 不二先生的世界 | 来源:发表于2016-06-02 01:17 被阅读39354次
    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根证书为信任证书。

    如何使用

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


      Charles Certificate被安装.png
    2. 信任证书
      但此时该证书并没有被信任,双击该行弹出证书详情,选择“Always Trust”。


      信任证书
    3. 给手机安装证书
      打开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设备,选择设置->从储存设备安装。
    4. 开启SSL代理功能
      在Menu选择Proxy->SSL Proxying Setting,选中Enable SSL Proxying,在Locations里面添加要使用SSL代理的网站,端口号输入443,如果需要匹配所有的HTTPS网站则输入 * 号即可。现在即可拦截Https的数据包。

    参考资料

    SSL PROXYING
    SSL CERTIFICATES

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

    相关文章

      网友评论

      • 1c2681092ae1:小米手机注意了,不知道是不是因为升级到android 8的原因,即使安装了证书也无法抓到https,反正我的全是unknow,现在只能装安卓模拟器来抓了
        cliuth:你装证书的姿势不对
      • bb838b2d5aaf:不错不错,小米抓成功了
      • 0I24N63:小米没提示无法安装根证书,但是好像可以抓包
        0I24N63:抓到的全是HTTP包,没有HTTPS的
      • La0s:对Android或iOS抓HTTPS不需要Install Charles Root Certificate吧
      • 风神AI:小米手机等安卓不能安装证书的解决办法. 打开Charles的HELP->SSL Proxying -> Export Charles Root Certification and Private Key,随便输入什么密码,记住,导出 用微信或者其他传到安卓手机里, 在WLAN设置,安装证书里打开这个文件,输入刚才的密码,就搞定了.
      • 吾名唐宋:朋友, 安卓手机第三步,打开网址不提示,没反应,还有稍微详细一点可以吗,谢谢了
      • 5fa1b1fb91d1:如果是Android设备,选择设置->从储存设备安装
        这一步能详细点吗?
      • 某非著名程序员:android的手机证书装不了,为啥?
        754c54f0ba62:http://www.jianshu.com/p/ecd065ac0440按这个教程安卓小米安装成功了
        754c54f0ba62:同样也是,提示没有可安装证书?不知你解决没呢?
      • Alfred泉:第三步给手机安装证书这一步 我弹出的dialog 怎么是这种内容 求解答啊 Configure your device to use Charles as its HTTP proxy on fe80:0:0:0:807:5547:adb1:3768%4:8888, then browse to chls.pro/ssl to download and install the certificate.
      • 景阳_jy:选择SSL Proxying需要从charles并不的菜单栏中的help点进去,漏了个help
        不二先生的世界:多谢指正,已修改
      • lovedabaozi:有没有 window下的啊 楼主
        不二先生的世界:@记忆深处里 目前手上没有Window设备,其实官网上使用文档,https://www.charlesproxy.com/documentation/,你可以参考下。我只是发现身边同事用的时候遇到困难,就随便写了一篇初级入门帖。

      本文标题:如何使用charles对Android Https进行抓包

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