fiddler抓取手機https請求詳解


前言:

Fiddler是在 windows下常用的網絡封包截取工具,在做移動開發時,我們為了調試與服務器端的網絡通訊協議,常常需要截取網絡封包來分析,fiddler默認只能抓取http請求,需要配置和安裝fiddler證書才能抓取https請求。

fiddler抓取手機https請求詳細步驟:

1,官網免費下載fiddler后,點擊安裝,安裝成功后,打開fiddler后如下圖:

 

 

2,打開Tools–> Options–> Connections選項中勾選Allow remote computers to connect (允許遠程計算機連接),選擇監聽端口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的 “ 設置 ”–>“ 無線局域網 ” 中,可以看到當前連接的 wifi 名,通過點擊右邊的詳情鍵,可以看到當前連接上的 wifi 的詳細信息,包括 IP 地址,子網掩碼等信息。

在其最底部有「HTTP 代理」一項,我們將其切換成手動,然后填上 android運行所在的電腦的 IP,以及前面設置的端口號 8889,如下圖所示:(此處以oppo手機為例)

 

 

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

 

 

*安裝中出現的問題:

1,在步驟6后,手機安裝fiddler證書的步驟網絡上很多是通過訪問電腦ip+代理端口,就能訪問fiddler證書下載頁,進行下載安裝fiddler證書;

樓主用的win10的系統,再確認手機代理打開且設置正確后,訪問電腦ip+端口后報錯,不能訪問下載頁,如下圖所示:

 

 

不能訪問電腦ip+端口,網上各種百度后,網友提供的解決方案如下:

1, 確認防火牆允許訪問,並且確保電腦端未裝殺毒軟件和各種安全衛士;(win10系統默認裝了聯想殺毒等軟件,不能卸載,導致此條不能排除)

2,   確認在防火牆的高級設置中80端口能訪問:如果不能正確的導出證書請下載FiddlerCertMaker證書生成器

 

 

總結:樓主最后無法排除問題一,故選擇繞開IP訪問,采用的導出證書然后傳到手機端的方式,成功安裝fiddler證書~


*不同機型安裝fiddler證書:

1,oppo手機和vivo手機:

點擊證書后,不能直接安裝,要通過設置中的更多設置的安全與隱私去添加認證證書,詳細步驟如下:

ANDROID:設置 —> 安全 —> 從手機存儲安裝(或者是:設置 —> 其他設置 —> 設備與隱私 —> 從存儲設備安裝證書),找到需要安裝的證書,安裝即可

*注意:android7.0以下版本以上設置后直接可以抓包了,但android7.0以后版本有一個名為“Network Security Configuration”的新安全功能。這個新功能的目標是允許開發人員在不修改應用程序代碼的情況下自定義他們的網絡安全設置。

如果應用程序的SDK高於或等於24,則只有系統證書才會被信任。不讓信任外部(用戶導入)證書;

手機的根證有兩種,一種是系統預裝的,一種是用戶自己導入的:如下圖所示:

 

 

 所以:Android的源代碼需要讓研發來改動,只改成測試和release的可以就行。

方法一:添加如下文件res/xml/network_security_config.xml到代碼里面,請求域名;                             

方法二:或者在AndroidManifest.xml文件中加入以下配置:Android:networkSecurityConfig="@xml/network_security_config"大功告成,配置完即可抓包。

方法三:修改http請求框架的協議棧,讓框架不驗證證書

如果想抓取第三方應用包,解決方法如下:

方法一:通過重打包的方式強行修改配置,或者強行降低 targetSdkVersion,或者強行修改別人源碼里面的信任證書的代碼,然后再重打包就好了(分別針對上面1,2,3里面所說的方法,只不過通過逆向的方式添加);

方法二:通過使用Xposed的JustTrustMe模塊來信任所有的證書,Xposed不會用的;

方法三:使用Android 7.0 以下的系統安裝應用,並抓包;

2,huaiwei手機:

安裝fiddler證書,點開證書后,可以直接安裝;安裝后直接可以抓取https的包;

3,蘋果手機:

安裝fiddler證書,安裝步驟如下:

IOS:設置 —> 通用 —> 關於本機 —> 受信任證書存儲區,找到需要安裝的證書,安裝即可。

*注意: iOS10系統以上需要進行設置:設置 -> 通用 -> 關於本機 -> 證書信任設置 -> 針對根證書啟用完全信任 打開開關; 最后注意:不抓包請關閉手機HTTP代理,否則斷開與電腦連接后會連不上網;

 

以上~對你有幫助的話,點個贊👍吧~~

歡迎關注我的同名簡書,博客,Github~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM