用Fiddler在Android上抓HTTPS包

用Fiddler在Android上抓HTTPS包

Fiddler是一个HTTP协议调试代理工具,在开发网络应用的时候经常会用到,其最基本的作用是能抓HTTP的数据包,当然它还有更高级的用法,如添加断点、修改请求与相应的数据等等。。。

简单说下使用方法

  1. 安装后配置端口:Tools->Fiddler Options->Connections->Fiddler listens on port: 8888(默认值)
  2. 勾选Allow remote computers to connect
    这里写图片描述
  3. 进入Android设备的WLAN连接,长按进入修改网络->显示高级选项->添加代理服务器IP和端口即可(运行Fiddler的那台机器)
    这里写图片描述
    这个时候Android设备上所有的HTTP请求就会通过Fiddler进行代理转发了,当然我们就可以在Fiddler上对数据包进行分析。。。

抓HTTPS包

最近项目里需要抓取Google Analytics的数据包进行分析,而GA的数据传输都是基于HTTPS的,用Fiddler进行抓包,命令行一直报Warnning,很明显就是由于证书没添加导致握手过程失败:

W/GAv4: Network compressed POST connection error: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

我们都知道,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,HTTPS需要申请CA证书,SSL通过CA证书来进行验证并对数据进行加密。

要让Fiddler支持HTTPS包的捕获,我们需要到设置里面将其打开,并把CA证书添加到系统中:

  1. 进入Tools->Fiddler Options->HTTPS,勾选Decrypt HTTPS traffic
    这里写图片描述
  2. 然后通过Actions按钮中的Export Root Certificate to Desktop导出证书文件FiddlerRoot.cer,拷贝至sdcard,然后通过安全->凭据存储->从usb存储器安装添加证书。此时会弹出添加证书的Dialog,输入名字点击确定即可。(或者在Android设备通过浏览器进入http://192.168.xx.xx:8888/,点击最下方的FiddlerRoot certificate,然后会弹出添加证书的Dialog。)
    这里写图片描述
    这里写图片描述
  3. 设置完后如果没生效把App重启一下再试试,在Fiddler的列表中应该已经出现HTTPS的数据包了。

注意:
若导入证书的时候弹出:“输入凭据存储的密码”,则需要先设置锁定屏幕PIN或密码才能使用凭据存储。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值