最近研究了一下利用Mac上如何利用fiddler抓取https協(xié)議數(shù)據(jù),踩了很多地雷,所以想在此總結一下练对,希望其他小伙伴不要再踩我踩過的雷遍蟋。
工作原理
Fiddler是用代理web服務器的形式工作的,代理端口是8888螟凭,代理端口可以在fiddler中設置虚青。
一、mono的安裝
1. mono作用:簡單的說就是由于Fiddler是基于.Net技術開發(fā)的螺男,沒辦法直接在Mac/Linux下使用棒厘,mono就是給Fiddler在Mac/Linux系統(tǒng)下提供.Net運行環(huán)境的。mono可以在這里下載下隧。
2.安裝步驟:
下載完成后在Terminal里執(zhí)行以下命令
/Library/Frameworks/Mono.framework/Versions/<Mono Version>/bin/mozroots --import --sync
其中Mono Version是指mono的版本奢人,現(xiàn)在是5.10.1版。此步是為了從Mozilla LXR上下載所有受信任的root證書汪拥,存于Mono的證書庫里达传。root證書能用于請求https地址。
接下來把mono加入到環(huán)境變量中迫筑,編輯.bash_profile文件:
sudo vi ~/.bash_profile
加入文本:
export MONO_HOME=/Library/Frameworks/Mono.framework/Versions/5.0.1
export PATH=$PATH:$MONO_HOME/bin
保存后重新打開Terminal宪赶,Mono環(huán)境已裝好。
二脯燃、Fiddler的安裝
從Fiddler官網(wǎng)https://www.telerik.com/download/fiddler下載,打開Terminal搂妻,進入到剛才Fiddler的保存路徑,執(zhí)行命令運行:
sudo mono --arch=32 Fiddler.exe
在Mac上要指明--arch=32 辕棚,猜測可能是Fiddler運行在32位機器上的程序欲主,原因不是很確定,有清楚的朋友歡迎指正逝嚎。
三扁瓢、代理配置
打開Fiddler后依次選中tools->options->Connections按下圖勾選選中:
iPhone手機中的代理設置:
1. 要想抓取手機端內(nèi)容首先要讓手機跟電腦鏈接到同一個網(wǎng)絡中
2. 點擊手機設置->Wi-Fi右側的藍色按鈕進入http代理設置:
在http代理處選擇手動模式,輸入ip和端口补君。ip即pc的局域網(wǎng)地址引几,端口為:8888
四、https證書的配置
? 由于https的ssl/tls層使用了非對稱的加密方式挽铁,利用公鑰加密私鑰解密伟桅,其中公鑰放在證書中,所以Fiddler要監(jiān)聽https協(xié)議的網(wǎng)絡請求需要配置證書叽掘。
? 1. Fiddler中相關設置:
在選擇好后Fiddler會安裝相關證書楣铁,點擊OK按鈕完成玉组。
2. 在移動端證書的配置:
? ? 之前已經(jīng)說過了术徊,要抓取移動端數(shù)據(jù),必須使手機和電腦連接到同一個網(wǎng)絡并巍,然后在Safari 打開http://<ip>:8888,點擊 FiddlerRoot certificate赊堪,進行證書安裝面殖。其中IP就是電腦局域網(wǎng)IP
? 安裝的證書需要認證,否則無法使用哭廉,ios設置證書認證:設置-->通用--->關于本—>證書信任設置 。找到剛才安裝的證書點擊信任相叁。
3.?在mac電腦中配置證書:
打開Fiddler在Fiddler工具欄中依次點擊Tools-->Options-->HTTPS-->Actions-->Export Root Certificate to Desktop導出證書到桌面上:
雙擊證書遵绰,會跳到鑰匙串中,即可倒入證書到Mac電腦證書管理中:
雙擊鑰匙串中倒入的證書設置信任證書及可以抓取瀏覽器中的https協(xié)議請求的數(shù)據(jù):
好了增淹,整個在Mac上利用fiddler爬取https協(xié)議請求數(shù)據(jù)的過程就講完了椿访,看了很多別人寫的相關博客,借鑒了寫的不錯的虑润,再此申明一下成玫。