前言:
Fiddler是在 windows下常用的網(wǎng)絡(luò)封包截取工具笙蒙,在做移動開發(fā)時,我們?yōu)榱苏{(diào)試與服務器端的網(wǎng)絡(luò)通訊協(xié)議市框,常常需要截取網(wǎng)絡(luò)封包來分析躬翁,fiddler默認只能抓取http請求,需要配置和安裝fiddler證書才能抓取https請求查乒。
fiddler抓取手機https請求詳細步驟:
1弥喉,官網(wǎng)免費下載fiddler后,點擊安裝玛迄,安裝成功后由境,打開fiddler后如下圖:
2,打開Tools–> Options–> Connections選項中勾選Allow remote computers to connect (允許遠程計算機連接),選擇監(jiān)聽端口8889(可自己配置蓖议,默認為8888)虏杰,配置完如下圖:
3,打開Tools–> Options–>HTTPS勒虾,勾選Decrypt HTTPS traffic ,選擇from remotes client only(從遠程客戶端)纺阔,同時勾選Ignore server certificate errors(unsafe)配置完如下圖:
4, 打開Tools–> Options–>HTTPS,點擊Actions中的Trust Root Certificate,添加fiddler證書到列表中:一直確定修然,就成功添加fiddler證書到本機列表了笛钝;
5质况,打開Tools–> Options–>HTTPS,點擊Actions中的Export Root CertificateTo Desktop,將fiddler證書導出到桌面:
6玻靡,在 android的 “ 設(shè)置 ”–>“ 無線局域網(wǎng) ” 中结榄,可以看到當前連接的 wifi 名,通過點擊右邊的詳情鍵囤捻,可以看到當前連接上的 wifi 的詳細信息臼朗,包括 IP 地址,子網(wǎng)掩碼等信息蝎土。在其最底部有「HTTP 代理」一項视哑,我們將其切換成手動,然后填上 android運行所在的電腦的 IP誊涯,以及前面設(shè)置的端口號 8889挡毅,如下圖所示:(此處以oppo手機為例)
7,將fiddler證書FiddlerRoot.cer從電腦傳到手機端醋拧,點擊設(shè)置–>其他設(shè)置–>安全與隱私–>從存儲設(shè)備安裝證書–>選擇證書–>安裝安裝成功就可以抓https的包啦~
*安裝中出現(xiàn)的問題:
1慷嗜,在步驟6后淀弹,手機安裝fiddler證書的步驟網(wǎng)絡(luò)上很多是通過訪問電腦ip+代理端口丹壕,就能訪問fiddler證書下載頁,進行下載安裝fiddler證書薇溃;樓主用的win10的系統(tǒng)菌赖,再確認手機代理打開且設(shè)置正確后,訪問電腦ip+端口后報錯沐序,不能訪問下載頁,如下圖所示:
不能訪問電腦ip+端口琉用,網(wǎng)上各種百度后,網(wǎng)友提供的解決方案如下:
1策幼, 確認防火墻允許訪問邑时,并且確保電腦端未裝殺毒軟件和各種安全衛(wèi)士;(win10系統(tǒng)默認裝了聯(lián)想殺毒等軟件特姐,不能卸載,導致此條不能排除)
2唐含,? ?確認在防火墻的高級設(shè)置中80端口能訪問:如果不能正確的導出證書請下載FiddlerCertMaker證書生成器
總結(jié):樓主最后無法排除問題一浅浮,故選擇繞開IP訪問,采用的導出證書然后傳到手機端的方式捷枯,就可成功安裝fiddler證書哦~
*不同機型安裝fiddler證書:
1滚秩,oppo手機和vivo手機,點擊證書后淮捆,不能直接安裝郁油,要通過設(shè)置中的更多設(shè)置的安全與隱私去添加認證證書本股,詳細步驟如下:
ANDROID:設(shè)置 —> 安全 —> 從手機存儲安裝(或者是:設(shè)置 —> 其他設(shè)置 —> 設(shè)備與隱私 —> 從存儲設(shè)備安裝證書),找到需要安裝的證書桐腌,安裝即可
*注意:android7.0以下版本以上設(shè)置后直接可以抓包了痊末,但android7.0以后版本有一個名為“Network Security Configuration”的新安全功能。這個新功能的目標是允許開發(fā)人員在不修改應用程序代碼的情況下自定義他們的網(wǎng)絡(luò)安全設(shè)置哩掺。如果應用程序的SDK高于或等于24凿叠,則只有系統(tǒng)證書才會被信任。不讓信任外部(用戶導入)證書嚼吞;
手機的根證有兩種盒件,一種是系統(tǒng)預裝的,一種是用戶自己導入的:如下圖所示:
?所以:Android的源代碼需要讓研發(fā)來改動舱禽,只改成測試和release的可以就行炒刁。
方法一:添加如下文件res/xml/network_security_config.xml到代碼里面,請求域名誊稚;? ? ? ?? ? ? ? ?? ? ? ? ?? ??
方法二:或者在AndroidManifest.xml文件中加入以下配置:Android:networkSecurityConfig="@xml/network_security_config"大功告成翔始,配置完即可抓包。
方法三:修改http請求框架的協(xié)議棧里伯,讓框架不驗證證書
如果想抓取第三方應用包城瞎,解決方法如下:
方法一:通過重打包的方式強行修改配置,或者強行降低 targetSdkVersion疾瓮,或者強行修改別人源碼里面的信任證書的代碼脖镀,然后再重打包就好了(分別針對上面1,2狼电,3里面所說的方法蜒灰,只不過通過逆向的方式添加);
方法二:通過使用Xposed的JustTrustMe模塊來信任所有的證書肩碟,Xposed不會用的强窖;
方法三:使用Android 7.0 以下的系統(tǒng)安裝應用,并抓包削祈;
2翅溺,huaiwei手機安裝fiddler證書,點開證書后岩瘦,可以直接安裝未巫;安裝后直接可以抓取https的包;
3启昧,蘋果手機安裝fiddler證書叙凡,安裝步驟如下:
IOS:設(shè)置 —> 通用 —> 關(guān)于本機 —> 受信任證書存儲區(qū),找到需要安裝的證書密末,安裝即可握爷。
*注意: iOS10系統(tǒng)以上需要進行設(shè)置:設(shè)置 -> 通用 -> 關(guān)于本機 -> 證書信任設(shè)置 -> 針對根證書啟用完全信任 打開開關(guān)跛璧;?最后注意:不抓包請關(guān)閉手機HTTP代理,否則斷開與電腦連接后會連不上網(wǎng)新啼;?
以上~對你有幫助的話追城,點個喜歡??吧~~