前言:
Fiddler是在 windows下常用的網(wǎng)絡(luò)封包截取工具,在做移動(dòng)開發(fā)時(shí),我們?yōu)榱苏{(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)議,常常需要截取網(wǎng)絡(luò)封包來分析,fiddler默認(rèn)只能抓取http請(qǐng)求,需要配置和安裝fiddler證書才能抓取https請(qǐng)求。
fiddler抓取手機(jī)https請(qǐng)求詳細(xì)步驟:
1,官網(wǎng)免費(fèi)下載fiddler后,點(diǎn)擊安裝,安裝成功后,打開fiddler后如下圖:

2,打開Tools–> Options–> Connections選項(xiàng)中勾選Allow remote computers to connect (允許遠(yuǎn)程計(jì)算機(jī)連接),選擇監(jiān)聽端口8889(可自己配置,默認(rèn)為8888),配置完如下圖:

3,打開Tools–> Options–>HTTPS,勾選Decrypt HTTPS traffic ,選擇from remotes client only(從遠(yuǎn)程客戶端),同時(shí)勾選Ignore server certificate errors(unsafe)配置完如下圖:

4, 打開Tools–> Options–>HTTPS,點(diǎn)擊Actions中的Trust Root Certificate,添加fiddler證書到列表中:一直確定,就成功添加fiddler證書到本機(jī)列表了;



5,打開Tools–> Options–>HTTPS,點(diǎn)擊Actions中的Export Root CertificateTo Desktop,將fiddler證書導(dǎo)出到桌面:

6,在 android的 “ 設(shè)置 ”–>“ 無線局域網(wǎng) ” 中,可以看到當(dāng)前連接的 wifi 名,通過點(diǎn)擊右邊的詳情鍵,可以看到當(dāng)前連接上的 wifi 的詳細(xì)信息,包括 IP 地址,子網(wǎng)掩碼等信息。在其最底部有「HTTP 代理」一項(xiàng),我們將其切換成手動(dòng),然后填上 android運(yùn)行所在的電腦的 IP,以及前面設(shè)置的端口號(hào) 8889,如下圖所示:(此處以oppo手機(jī)為例)

7,將fiddler證書FiddlerRoot.cer從電腦傳到手機(jī)端,點(diǎn)擊設(shè)置–>其他設(shè)置–>安全與隱私–>從存儲(chǔ)設(shè)備安裝證書–>選擇證書–>安裝安裝成功就可以抓https的包啦~

*安裝中出現(xiàn)的問題:
1,在步驟6后,手機(jī)安裝fiddler證書的步驟網(wǎng)絡(luò)上很多是通過訪問電腦ip+代理端口,就能訪問fiddler證書下載頁,進(jìn)行下載安裝fiddler證書;樓主用的win10的系統(tǒng),再確認(rèn)手機(jī)代理打開且設(shè)置正確后,訪問電腦ip+端口后報(bào)錯(cuò),不能訪問下載頁,如下圖所示:

不能訪問電腦ip+端口,網(wǎng)上各種百度后,網(wǎng)友提供的解決方案如下:
1, 確認(rèn)防火墻允許訪問,并且確保電腦端未裝殺毒軟件和各種安全衛(wèi)士;(win10系統(tǒng)默認(rèn)裝了聯(lián)想殺毒等軟件,不能卸載,導(dǎo)致此條不能排除)
2,? ?確認(rèn)在防火墻的高級(jí)設(shè)置中80端口能訪問:如果不能正確的導(dǎo)出證書請(qǐng)下載FiddlerCertMaker證書生成器

總結(jié):樓主最后無法排除問題一,故選擇繞開IP訪問,采用的導(dǎo)出證書然后傳到手機(jī)端的方式,就可成功安裝fiddler證書哦~
*不同機(jī)型安裝fiddler證書:
1,oppo手機(jī)和vivo手機(jī),點(diǎn)擊證書后,不能直接安裝,要通過設(shè)置中的更多設(shè)置的安全與隱私去添加認(rèn)證證書,詳細(xì)步驟如下:
ANDROID:設(shè)置 —> 安全 —> 從手機(jī)存儲(chǔ)安裝(或者是:設(shè)置 —> 其他設(shè)置 —> 設(shè)備與隱私 —> 從存儲(chǔ)設(shè)備安裝證書),找到需要安裝的證書,安裝即可
*注意:android7.0以下版本以上設(shè)置后直接可以抓包了,但android7.0以后版本有一個(gè)名為“Network Security Configuration”的新安全功能。這個(gè)新功能的目標(biāo)是允許開發(fā)人員在不修改應(yīng)用程序代碼的情況下自定義他們的網(wǎng)絡(luò)安全設(shè)置。如果應(yīng)用程序的SDK高于或等于24,則只有系統(tǒng)證書才會(huì)被信任。不讓信任外部(用戶導(dǎo)入)證書;
手機(jī)的根證有兩種,一種是系統(tǒng)預(yù)裝的,一種是用戶自己導(dǎo)入的:如下圖所示:

?所以:Android的源代碼需要讓研發(fā)來改動(dòng),只改成測試和release的可以就行。
方法一:添加如下文件res/xml/network_security_config.xml到代碼里面,請(qǐng)求域名;? ? ? ?? ? ? ? ?? ? ? ? ?? ??
方法二:或者在AndroidManifest.xml文件中加入以下配置:Android:networkSecurityConfig="@xml/network_security_config"大功告成,配置完即可抓包。
方法三:修改http請(qǐng)求框架的協(xié)議棧,讓框架不驗(yàn)證證書
如果想抓取第三方應(yīng)用包,解決方法如下:
方法一:通過重打包的方式強(qiáng)行修改配置,或者強(qiáng)行降低 targetSdkVersion,或者強(qiáng)行修改別人源碼里面的信任證書的代碼,然后再重打包就好了(分別針對(duì)上面1,2,3里面所說的方法,只不過通過逆向的方式添加);
方法二:通過使用Xposed的JustTrustMe模塊來信任所有的證書,Xposed不會(huì)用的;
方法三:使用Android 7.0 以下的系統(tǒng)安裝應(yīng)用,并抓包;
2,huaiwei手機(jī)安裝fiddler證書,點(diǎn)開證書后,可以直接安裝;安裝后直接可以抓取https的包;
3,蘋果手機(jī)安裝fiddler證書,安裝步驟如下:
IOS:設(shè)置 —> 通用 —> 關(guān)于本機(jī) —> 受信任證書存儲(chǔ)區(qū),找到需要安裝的證書,安裝即可。
*注意: iOS10系統(tǒng)以上需要進(jìn)行設(shè)置:設(shè)置 -> 通用 -> 關(guān)于本機(jī) -> 證書信任設(shè)置 -> 針對(duì)根證書啟用完全信任 打開開關(guān);?最后注意:不抓包請(qǐng)關(guān)閉手機(jī)HTTP代理,否則斷開與電腦連接后會(huì)連不上網(wǎng);?
以上~對(duì)你有幫助的話,點(diǎn)個(gè)喜歡??吧~~