Fiddler抓取HTTPs流量

Fiddler抓取HTTPS流量的原理

TLS是一種端到端的傳輸層加密協議,是HTTPS協議的一個組成部分。訪問HTTPS站點時,HTTP請求、響應都通過TLS協議在瀏覽器和服務器之間加密傳輸,並且通過數字證書技術保證數據的保密性和完整性;任何“中間人”、包括代理服務器都只能轉發數據,而無法竊聽或者篡改數據。

 

要抓取HTTPS流量的明文內容,Fiddler必須解密HTTPS流量。但是,瀏覽器將會檢查數字證書,並發現會話遭到竊聽。爲了騙過瀏覽器,Fiddler通過使用另一個數字證書重新加密HTTPS流量。Fiddler被配置爲解密HTTPS流量後,會自動生成一個名爲DO_NOT_TRUST_FiddlerRoot的CA證書,並使用該CA頒發每個域名的TLS證書。若DO_NOT_TRUST_FiddlerRoot證書被列入瀏覽器或其他軟件的信任CA名單內,則瀏覽器或其他軟件就會認爲HTTPS會話是可信任的、而不會再彈出“證書錯誤”警告。

 

開啓HTTPS流量解密功能後,Fiddler將會提示用戶將DO_NOT_TRUST_FiddlerRoot證書列入IE瀏覽器的信任CA名單。用於調試客戶端時,這已經足夠了;Firefox用戶也可以很方便的手動導入DO_NOT_TRUST_FiddlerRoot證書。但是,若要在服務器上抓取ASP.Net發出的HTTPS請求,這是不夠的——你必須將DO_NOT_TRUST_FiddlerRoot證書導入“機器帳號”的信任CA名單。

 

Fiddler抓取移動端設備HTTPS流量步驟

 

打開tools->FiddlerOptions->HTTPS


 

勾選上Capture HTTPS CONNECTs和Decrypt HTTPS traffic

 

然後會提示安裝證書,點擊yes


點擊是安裝證書


打開certMgr.msc可以管理  PC上的所有證書,在受信任的根證書頒發機構->證書中會有一個DO_NOT_TRUST_FiddlerRoot證書,表明證書安裝成功

 

然後在Connections中將Fiddler的監聽端口設置爲8888,同時勾選上Allow remote computers to connect允許遠程連接


然後在HTTPS中點擊Export Root Certificate to Desktop


然後桌面上會生成一個FiddlerRoot.cer的證書


 

下面需要將證書導入到移動設備中,以ipad爲例,假設我的電腦在局域網中的ip是192.168.26.52,將Fiddler打開監聽在8888端口上,通過在safari的地址欄中輸入http://192.168.26.52:8888/FiddlerRoot.cer可以看到Fiddler服務正常開啓,然後點擊FiddlerRoot certificate將證書導入


 

點擊安裝


 

安裝成功會有如下描述文件同時簽名會通過認證

 

最後,在ipad的網絡中設置手動代理,ip填寫本機ip,端口填寫8888即可抓取HTTPS包了


 

關於高版本Fiddler導出的證書在ipad上安裝顯示未驗證的問題,Google原文如下:

Q:Can Fiddler intercept traffic from Apple iOS devices like iPad/iPhone/iPodTouch and Android devices?

A: Yes, but these devices may not becompatible with the default certificates Fiddler generates.

To resolve the incompatibility, you mayreplace Fiddler's default certificate generator with one that generatescertificates containing flags (e.g. AKID, SKID) that are compatible with theseplatforms. Simply download and install the newCertificateMaker and restart Fiddler.

 

安裝一個證書生成器,下載地址:http://www.enhanceie.com/dl/FiddlerCertMaker.exe

然後重啓Fiddler重新導出證書即可


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章