現在window 系統很多使用 fiddler 抓包,對於 http 來說不需太多糾結,隨便設置下就能用,但是抓取 https 就死活抓不了,出現諸如以下問題:
creation of the root certificate was not successful;
Failed to find the root certificate in User Root List;
The Root certificate could not be found;
The root certificate could not be located;
Fiddler 抓取https 顯示 Tunnel to ... 443;
等等...
主要原因就是 https 有一個安全證書問題。
第一次安裝:
1.下載最新版fiddler ,強烈建議在官網下載:https://www.telerik.com/download/fiddler
2. 正常傻瓜式安裝,下一步,下一步,安裝完畢后,先不用急於打開軟件。
3.下載並安裝Fiddler證書生成器:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
4.打開Fiddler,點擊工具欄中的Tools—>Options
5.點擊https設置選項,勾選選擇項
6.點擊Actions,點擊第二項:Export Root Certificate to Desktop,這時候桌面上會出現證書FiddlerRoot.cer文件,點擊OK設置成功,關閉fiddler
7.PC端,在瀏覽器中導入證書FiddlerRoot.cer,以谷歌瀏覽器為例說明,在瀏覽器上輸入: chrome://settings/,然后進入高級設置,點擊管理證書
8.在受信任的根證書頒發機構,對證書進行導入
9.重新打開fiddler,就可以在電腦上進行https抓包了。
如果不是第一次安裝,那么需要重新設置,步驟如下:
1.清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA 目錄下所有文件
2.清除電腦上的根證書,WIN+R快捷鍵,輸入:certmgr.msc, 然后回車,查找所有fiddler證書,然后刪除。
3.清除瀏覽器上的證書文件,此處需要仔細查找帶有FiddlerRoot的字樣,並刪除,一般在設置中。以谷歌瀏覽器為例說明,在瀏覽器上輸入: chrome://settings/
4.打開fiddler,點擊工具欄中的Tools—>Options,點擊Actions,選擇最后一項,Reset All certificates,然后關閉
5.點擊 Options 對話框的 Connections 選項,設置端口號以及箭頭標記選項。默認是8899,可以自行修改設置
設置手機(ios)
1. 配置代理
步驟: 設置 >> 無線局域網 >> 選擇和PC端一樣的網絡連接,點擊進入
>> 翻到最下面,找到HTTP代理(默認:關閉) >>點擊“手動”選項
>> 服務器:pc機的 ip(cmd 進入命令行窗口,ipconfig或ipconfig/all可獲取) 端口:8888(你在fiddler 中如何設置的,這里就填什么)
>>點擊存儲
比如 ip:127.0.0.1,port:8080。也可以使用指令 ipconfig 查看電腦 ip,或者在 fiddler 右上角 online 如圖直接查看
2.下載&安裝證書
步驟:
1)在默認瀏覽器"Safari"的地址欄中輸入 ip:port (ip是pc機的ip,port是fiddler設置的端口)如:192.168.0.10:8888
2)點擊“FiddlerRoot certificate” >> 選擇【允許】 >> 點擊【安裝】即可
3)安裝后檢查證書是否打開
步驟: 設置 >> 通用 >> 關於本機 >>證書信任設置 >> 啟用你安裝的證書的信任 >> 選擇繼續
如下圖所示,到此完成了fiddler配置手機代理
設置手機(安卓)
1. 配置代理
步驟如 ios 一樣
2.下載證書
1)手機瀏覽器(最好使用自帶瀏覽器 不容易出問題)進入 http://主機名IP:8888,
2)點擊“FiddlerRoot certificate”進行下載(通過更改目錄,可以查看一下下載到那個目錄了)
一般在下載目錄:內部存儲設置 > download
3.安裝證書
步驟:
1)設置 >> 更多設置 >> 系統安全 >> 從存儲設置安裝 >> 進入下載證書的目錄(如下圖是下載目錄:內部存儲設置 > download)即可看到你下載的證書
注意:有的手機是通過usb設備安裝的
2)選中證書,點擊【確定】,即可開始安裝
說明:
證書名稱:可以隨便起;
憑據用途:默認選擇"VPN和應用”,建議選擇“WLAN”選項,部分手機需要選擇"VPN和應用”,否則https請求好像抓不到。大家可以自己測試下,我的模擬機選擇的“WLAN”。
3)點擊上圖的【確定】按鈕,即可完成安裝。
這時候理論上就可以抓到手機app的數據包了。
抓包問題:
抓包過程中,發現 Fiddler 抓取的所有的請求數據都是關於 image 的,找了半天才發現是設置了過濾器。。。.
如果手機設置代理后,還無法訪問,則進行如下操作:
①關閉防火牆
②打開注冊表(window+R,然后輸入regedit),在HKEY_CURRENT_USER\Software\Microsoft\Fiddler2下創建一個DWORD,值置為80(十進制)
記得選十進制
③打開fiddler,點擊Rules—Customize Rules,用Ctrl+F查找OnBeforeRequest方法添加一行代碼
if (oSession.host.toLowerCase() == “webserver:8888”)
{
oSession.host = “webserver:80”;
}
重啟fiddler,在手機重新安裝證書