用Fiddler在Android上抓HTTPS包
2016-02-01 20:17
681 查看
用Fiddler在Android上抓HTTPS包
Fiddler是一个HTTP协议调试代理工具,在开发网络应用的时候经常会用到,其最基本的作用是能抓HTTP的数据包,当然它还有更高级的用法,如添加断点、修改请求与相应的数据等等。。。简单说下使用方法:
安装后配置端口:Tools->Fiddler Options->Connections->Fiddler listens on port: 8888(默认值)勾选Allow remote computers to connect
进入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证书添加到系统中:
进入Tools->Fiddler Options->HTTPS,勾选Decrypt HTTPS traffic
然后通过Actions按钮中的Export Root Certificate to Desktop导出证书文件
FiddlerRoot.cer,拷贝至sdcard,然后通过安全->凭据存储->从usb存储器安装添加证书。此时会弹出添加证书的Dialog,输入名字点击确定即可。(或者在Android设备通过浏览器进入http://192.168.xx.xx:8888/,点击最下方的FiddlerRoot certificate,然后会弹出添加证书的Dialog。)
设置完后如果没生效把App重启一下再试试,在Fiddler的列表中应该已经出现HTTPS的数据包了。
相关文章推荐
- android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类)
- OTN交换&P-OTN有效减少100G网络成本(一)
- ssh使用http代理登录工具
- TCP三次握手四次挥手过程详解
- 图文介绍HTTP/2(特性、解决的问题、实现方法)
- HttpClient超时设置_demo
- 7.9 Models -- Connection to An HTTP Server
- http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html
- Fix The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 b
- 使用HttpURLConnection设置请求超时时间,请求超时时会导致自动重发。
- HTTP 错误 500.19 - Internal Server Error(Windows Server 2012)
- HttpWebRequest和HttpWebResponse类的认识
- 检测网络
- window下查看TCP端口连接情况
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- 如何禁止不必要的 HTTP 方法,如DELETE,PUT,OPTIONS等协议访问应用程序
- hdu 1532(最大流)
- HTTPS 原理解析
- bug记录:httpclient-invalid query
- http_post_data发送数据的获取方式