1. 背景html
最近在准备iOS应用强制支持https的特性测试,须要梳理相应的请求,初步策略是选择经过抓包工具进行验证,查看相应的请求连接是否为https, 核对请求返回的状态码及返回数据是否正常。咱们经常使用的抓包工具主要是fiddler和charles, 可是我这边使用charles抓取https遇到个坑,代理证书什么都安装了,SSL Proxy配置也正常,可是抓取的https请求就是返回失败,且数据乱码,以下图:git
另外也有试用过anyproxy抓包工具,发现也是一样的状况,可是在同事电脑上是能够正常的,百度了许久,目前还没找到具体缘由,有知道缘由的,求告知。github
2. mitmproxy介绍网络
官网:https://mitmproxy.org/app
Github地址:https://github.com/mitmproxy/mitmproxy工具
3. mitmproxy安装测试
网络上提供了三种方式,进行安装ui
3.1 使用pip的方式安装spa
[html] view plain copy.net
3.2 使用homebrew的方式安装
[html] view plain copy
3.3 下载release文件,解压安装, 连接地址:https://github.com/mitmproxy/mitmproxy/releases/tag/v1.0.2
4. 抓取https实践
4.1 启动mitmproxy, 能够直接双击mitmproxy文件启动,也能够添加mitmproxy路径到PATH变量中,终端输入mitmproxy命令进行启动。
4.2 配置代理, 端口默认为8080, 也能够按以下进行修改
[html] view plain copy
4.3 Safari访问mitmproxy.it, 安装mitmproxy证书到手机上,并信任:
4.4 操做手机应用,查看相应的请求,这里以美团为例, 能够看到相应的https请求可以正常的抓取,如图:
5. 经常使用快捷键
6. 拦截与修改请求
6.1 请求列表界面,按i进入Intercept Filter模式, 输入相应的关键字,便可拦截相应的请求;按esc能够退出intercept filter模式:
6.2 点击相应的请求,进入详情界面,切换到Request tab, 按e进入编辑request请求,e.g. 修改请求参数:
6.3 修改完请求参数后,按a, 执行请求,查看response,发现请求修改为功:
参考资料:
1. https://mitmproxy.org/doc/mitmproxy.html
2. http://www.tuicool.com/articles/EVV3Qza