Fiddler 安裝以及如何抓取HTTPS請求
衆所周知 Fiddler 是一個非常實用的 抓包工具 而且 有很多的 擴展功能可以去官網下載
我們在開發中,難免需要抓包工具來查看接口數據 或者 測試接口的安全性, 如未簽名而進行值的修改.
下面將介紹它的安裝以及配置 證書 來抓取HTTPS加密信息
1.官網下載 https://www.telerik.com/fiddler (雖然安裝沒什麼好說的,但還是寫一下,走完整的流程)
點擊 Free download 開始免費下載 之後會進入下載頁面,此時會問你準備如何使用 Fiddler? (安裝了不同擴展功能的版本)選擇好對應的版本進行下載
如果順利則直接成功的下載好安裝包
當然其實直接在百度搜索 並下載 也很省事
雙擊安裝包.exe 可執行文件
選擇好安裝路徑,install 並 運行
此時我們不做任何配置的情況下 已經可以抓取 HTTP 請求 (明文不解釋,當然也需要請求走系統代理 火狐遊覽器需要設置“手工配置代理”)
但是我們如果項目中使用了HTTPS 請求,由於HTTPS請求的安全性,所有數據都是加密的,那麼我們怎麼抓取其中的信息呢?
首先我們要配置一下 Fiddler 的證書
爲什麼要配置這個玩意呢? 有人會問, 那麼我們先來簡單看一下原理
1. Fiddler 攔截到我們自己客戶端的HTTPS請求。
2.把攔截到的請求轉發給請求服務器。
3.請求服務器響應,並生成證書文件發送給我們客戶端,Fiddler 攔截,獲取到請求服務器響應的證書文件,並把我們配置的僞造證書發送給我們自己的客戶端。
4.客戶端接受到僞造證書,再次請求數據。數據已經根據僞造證書加密。
5.Fiddler 攔截獲取其中所有請求信息,再根據3,步驟中攔截到的正真證書文件 進行信息加密,發送給請求服務器。
總體來說, Fiddler 起到了中間轉發的角色。
Fiddler 證書的配置:
1.Tools -> Options -> HTTPS
點擊 Decrypt HTTPS traffic 選中 from all processes
2.Actions -> Trust Root Certificate
yes
是
3.Actions—–>open windows certificate manager 或者 win + r 輸入 certmgr.msc
查看證書是否已安裝成功。
此時已經可以查看HTTPS請求中的參數,當然別忘了 啓動攔截 File -> Capture Traffic
當然這是正常流程,有些不幸運的朋友可能會出現種種問題 :
(我出現這個問題主要是去官網下載的版本出現此問題,不知道是電腦系統問題還是怎麼)
在第2步驟中的 Actions -> Trust Root Certificate 出現
(無法配置windwos信任Fiddler證書,這個原因應該是官網下載好的Fiddler沒有包含證書,需要自己生成,但是我在我的筆記本電腦上直接可以操作,這就很尷尬,只能認爲是系統問題,不管怎麼樣,我們需要自己生成並配置證書)
解決方案:
1.win+r 打開 cmd
2.進入到Fiddler 安裝文件夾中 執行
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
再重複一次 Actions -> Trust Root Certificate 操作 發現可以正常出現證書配置。
這裏還有可能出現 雖然證書已經安裝 但是 還是不能獲取到證書 從而導致不能解密HTTPS中信息 的情況 報錯信息如下:
我試着使用了fiddlercertmaker工具。 這次在使用 fiddlercertmaker 之前 我已經執行了此證書生成命令
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
不用cmd生成證書直接使用fiddlercertmaker生成證書是否可行?爲了解開心中的疑惑,之後我又測試了一次,確實只需要執行fiddlercertmaker即可。
安裝證書和fiddler版本一定要對應
之後就成功解決此問題: