一、HTTP協(xié)議和HTTPS協(xié)議。
(1) HTTPS協(xié)議=HTTP協(xié)議+SSL協(xié)議,默認端口:443
(2) HTTP協(xié)議(HyperText Transfer Protocol):超文本傳輸協(xié)議。默認端口:80,其中包含請求和響應兩部分,其中請求包含:請求行、請求頭、請求正文,響應包含:響應行、響應頭、響應正文。
二、Fiddler截獲HTTPS協(xié)議數(shù)據(jù)以及數(shù)字證書加密解密原理。
(1) 瀏覽器向百度發(fā)出https握手請求,被Fiddler截獲,變成fidller向百度發(fā)出握手請求,百度將自己的SSL證書(由CA頒發(fā),里面包含了百度的公鑰以及認證中心簽名及有效期等信息)進行返回,SSH數(shù)字證書被Fiddler截獲,F(xiàn)iddler用CA的公鑰解開百度的證書,拿到百度公鑰。
(2) Fiddler修改SSL證書相關信息(把:把百度的公鑰替換成自己的公鑰,把百度證書頒發(fā)機構修改成自己頒發(fā)等),以達到冒充百度的目的,然后用自己的私鑰重新加密百度的SSL數(shù)字證書發(fā)送給瀏覽器。
(3) 由Fiddler的根證書生成器FiddlerCertMaker.exe生成Fiddler的根證書并加入瀏覽器"受信任的根證書頒發(fā)機構"列表,所以瀏覽器可以用Fiddler根證書中的公鑰解密偽造的百度SSL數(shù)字證書。得到冒充的百度公鑰(實際是Fiddler的公鑰)。
(4) 瀏覽器生成隨機對稱秘鑰,用冒充的百度公鑰(實際是Fidller的公鑰)加密后發(fā)出,被Fiddler截獲,F(xiàn)iddler用自己私鑰解開帶有隨機對稱密鑰的密文,獲得通訊的對稱秘鑰。Fiddler用百度的公鑰加密對稱秘鑰,然后傳給百度。
(5) 百度用自己私鑰解開對稱秘鑰,這樣雙方就能使用對稱秘鑰加密傳輸了。
(6) Fiddler收到百度發(fā)來的網頁密文,由于Fiddler也保存了對稱秘鑰,所以它可以解開密文,這樣我們就能使用Fiddler看到加密的https的明文了,然后Fiddler再次用對稱秘鑰加密發(fā)送給瀏覽器。瀏覽器向百度發(fā)送密文時也被Fiddler截獲,截獲后使用對稱秘鑰解密并顯示在Fiddler,然后Fiddler使用對稱密鑰加密后再發(fā)送給百度。如此循環(huán)往復。
(7)如果你覺得此文對你有幫助,如果你對此文有任何疑問,如果你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣都可以加入軟件測試技術qun:695458161,群里發(fā)放的免費資料都是筆者十多年測試生涯的精華。還有同行一起交流哦。
三、Fiddler截獲https請求實操。
前言:理解https協(xié)議加密解密原理之后,以下操作能100%的解決fiddler所有證書問題。
(1) 清理環(huán)境(首次安裝Fiddler不需要清理)
1、卸載Fiddler軟件以及根證書生成器Fiddler2 CertMaker。
2、清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA 目錄下所有的RSA算法文件,此算法文件和非對稱公鑰密鑰加密相關。
3、清除電腦上的根證書,WIN+R快捷鍵,輸入: certmgr.msc, 然后回車,查找所有fiddler證書,然后刪除。
4.清除瀏覽器上的證書文件 ,以谷歌瀏覽器為例說明,在瀏覽器上輸入: chrome://settings/,進入[高級]->[管理證書],有"受信任的根證書頒發(fā)機構"列表。此處需要仔細查找?guī)в蠨O_NOT_TRUST_FiddlerRoot的字樣,并刪除。
(2) 安裝并配置Fiddler抓取Https數(shù)據(jù)報文。
1.下載并安裝fiddler,官網下載地址:https://www.telerik.com/download/fiddler
2.下載并安裝Fiddler證書生成器,官網下載地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
3. 打開Fiddler,點擊菜單欄中的Tools—>Options,選擇HTTPS頁簽。勾選Decrypt HTTPS CONNECTs(解密https連接),F(xiàn)iddler證書生成器會自動判斷本機是否安裝Fiddler證書,沒有則彈出如下證書安裝頁面。點擊”Yes”按鈕,在新彈出的窗口中再點擊”確定”后則Fiddler證書安裝完成。接下來Fiddler就可以抓取Https的數(shù)據(jù)報文。
(3) Fiddler抓取手機端的https協(xié)議數(shù)據(jù)報文。
1、打開Fiddler,點擊菜單欄中的Tools—>Options,選擇Connections頁簽。勾選Allow remote computers connnect(允許外部電腦連接)。
2、保持android手機和電腦在同一網段。如連接同一無線。
3、打開android手機的“設置”->“WLAN”,找到你要連接的無線網絡并點擊,彈出網絡設置對話框,在“代理”處選擇“手動”,在“主機名”輸入框后面輸入127.0.0.1,在“端口”輸入框后面輸入8888,然后點擊“保存”按鈕。
4、啟動android設備中的瀏覽器訪問百度首頁或打開被測App,在fiddler中可以看到抓取到的數(shù)據(jù)報文了。
聯(lián)系客服