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