Fiddler抓取PC端瀏覽器請(qǐng)求
1、Fiddler代理瀏覽器設(shè)置
注意瀏覽器代理區(qū)別 Chrome/IE瀏覽器使用的都是系統(tǒng)代理設(shè)置
在chrome瀏覽器的設(shè)置中搜索代理,可以看到

打開IE瀏覽器,選擇設(shè)置->Internet選項(xiàng)

Firefox瀏覽器使用的是單獨(dú)的一套代理系統(tǒng)
在Firefox的代理設(shè)置中,我們也可以選擇使用系統(tǒng)代理

2、打開Fiddler
Fiddler打開之后默認(rèn)是可以抓取到Chrome/IE瀏覽器的請(qǐng)求的。
這是因?yàn)镕iddler默認(rèn)會(huì)勾選“Act as system proxy on startup”,此選項(xiàng)會(huì)在Fiddler啟動(dòng)的時(shí)候作為系統(tǒng)代理:

我們會(huì)發(fā)現(xiàn)系統(tǒng)代理設(shè)置已經(jīng)被Fiddler篡改,端口和Fiddler中保持一致:

這也就是為什么Fiddler啟動(dòng)之后默認(rèn)可以抓取到Chrome/IE的請(qǐng)求,如果Firefox也想默認(rèn)抓取到,按照之前的設(shè)置,選擇使用系統(tǒng)代理即可。
此時(shí)我們只能抓取到http的請(qǐng)求,如果我們需要抓取https請(qǐng)求,還需要做如下配置。
3、勾選解密https流量選項(xiàng)
選擇Tools->Options->HTTPS,勾選"Decrypt HTTPS traffic"和“Ignore server certificate errors (unsafe)”選項(xiàng):

4、安裝證書到系統(tǒng)根證書中
點(diǎn)擊右上角Actions,選擇Trust Root Certificate選項(xiàng),跳出來的對(duì)話框全部選擇是或者yes即可

最后會(huì)出現(xiàn)如下提示,表示證書已經(jīng)成功安裝到了系統(tǒng)根證書區(qū)域

我們可以打開cmd,輸入cert.msc,打開證書管理器,即可看到安裝的Fiddler偽裝證書

重啟瀏覽器,重啟Fiddler,特別重要!!!
打開Chrome/IE,可以愉快的抓取https請(qǐng)求了

Fiddler可以通過安裝證書解決https請(qǐng)求的抓取問題,此時(shí)在瀏覽器面前Fiddler偽裝成一個(gè)https服務(wù)器,用戶可以將Fiddler的偽裝證書導(dǎo)入到系統(tǒng)的根證書中。
而瀏覽器是默認(rèn)信任系統(tǒng)的根證書的,此時(shí)Fiddler作為中間人在真正的服務(wù)器面前偽裝成瀏覽器的角色。
Firefox額外設(shè)置
Firefox瀏覽器和Chrome/IE證書管理有區(qū)別,Chrome/IE使用的是系統(tǒng)根證書,而Firefox有自己的一套證書管理系統(tǒng)
所以針對(duì)Firefox,我們還需要做另外的配置:
1、導(dǎo)出Fiddler證書到桌面
選擇Tools->Options->HTTPS,點(diǎn)擊右上角Actions,選擇Export Root Certificate to Desktop,此時(shí)在桌面可以找到導(dǎo)出來的證書

2、安裝證書到Firefox的內(nèi)置根證書中
進(jìn)入到Firefox的設(shè)置->搜索證書選->打開證書管理器,選擇桌面的證書文件導(dǎo)入進(jìn)來,勾選如下三個(gè)選項(xiàng)

重啟瀏覽器,重啟Fiddler,特別重要!!!
打開Firefox,抓取Https請(qǐng)求也沒問題了。
Fiddler抓取App端請(qǐng)求
準(zhǔn)備工作:
- 將手機(jī)和電腦連接到同一路由器(保證兩者能夠ping通)
- 如果使用的模擬器則不需要上面的步驟,因?yàn)槟M器是共享PC端的網(wǎng)絡(luò),兩者網(wǎng)絡(luò)默認(rèn)就是連通的狀態(tài)
- 查詢PC端的IP地址
1、配置fiddler可以抓取遠(yuǎn)程端設(shè)備請(qǐng)求
打開Tools->Options->Connections,勾選Allow remote computers to connect選項(xiàng)
為了防止PC端的瀏覽器的請(qǐng)求和App端的請(qǐng)求信息混亂,可以把Fiddler的監(jiān)聽端改下,比如改成:7777(當(dāng)然,不改也是可以的)。

2、手機(jī)端配置代理
進(jìn)入到手機(jī)/模擬器設(shè)置,選擇WLAN->連接上的WiFi熱點(diǎn)名->手指長按,選擇修改網(wǎng)絡(luò)->勾選高級(jí)選項(xiàng),代理選擇手動(dòng)(注意:不同手機(jī)的界面和進(jìn)入的路徑存在一些差異)
- 代理服務(wù)器主機(jī)名:PC端查詢的IP地址
- 代理服務(wù)器端口號(hào):Fiddler中配置的監(jiān)聽端口
此時(shí)我們只能抓取到http的請(qǐng)求,如果我們需要抓取https請(qǐng)求,還需要做如下配置。
3、手機(jī)端安裝Fiddler偽裝證書
在手機(jī)端瀏覽器中輸入
http://192.168.1.222:7777 其中192.168.1.222為PC端的IP地址
點(diǎn)擊最下方鏈接即可下載Fiddler證書

下載完打開,會(huì)提示為證書命名(隨便給一個(gè)名字即可)

如果是第一次安裝證書,系統(tǒng)會(huì)提示設(shè)置PIN碼(為了安全),按照提示一步一步操作即可

最后安裝結(jié)束,我們可以在設(shè)置->安全->信任的憑據(jù)->用戶 中找到我們安裝的證書(注意:不同手機(jī)的界面和進(jìn)入的路徑存在一些差異)

打開App(注意:如果之前有啟動(dòng),需要從后臺(tái)清理掉再重新啟動(dòng)),以"貝殼找房"為例,https請(qǐng)求抓取成功

會(huì)遇到的問題:
證書導(dǎo)出失敗,出現(xiàn)如下提示:The root certificate could not be located

解決方案:
- 在開始->運(yùn)行輸入:certmgr.msc打開證書管理
- 點(diǎn)擊操作->查找證書

- 輸入fiddler,進(jìn)行查找,將查找出來的所有證書進(jìn)行刪除:

再重啟Fiddler,重新導(dǎo)出證書
會(huì)遇到的問題:
證書導(dǎo)出失敗,出現(xiàn)如下提示:Unable to configure windows to Trust the Fiddler Root....

解決方案:
找到fiddler->工具欄tools->options,再選擇HTTPS,點(diǎn)擊CertEnroll engine,選擇MakeCert即可點(diǎn)擊OK保存,最后切記重啟fiddler!!!

說明:本文為檸檬班歪歪老師原創(chuàng),轉(zhuǎn)載需注明出處