本文結(jié)合完美解決:Charles問題之抓Android手機應(yīng)用Https包,出現(xiàn)Unknown一起,可以完美解決手機抓https包出現(xiàn)unknown的問題?。?!
本文安裝證書的部分已經(jīng)不適用當前的Charles抓包工具認證方式了,需要將Charles證書寫入到Android手機的系統(tǒng)證書里,詳細看完美解決:Charles問題之抓Android手機應(yīng)用Https包,出現(xiàn)Unknown
本文補充通過Charles抓取Android手機上應(yīng)用Https包,出現(xiàn)Unknown的解決辦法。
Charles問題之Windows10下抓取https包,出現(xiàn)unknown 已經(jīng)介紹Charles抓取PC端Web應(yīng)用的Https包出現(xiàn)Unknown的問題,分為三步:1、電腦安裝Charles和Charles證書;2、瀏覽器設(shè)置代理并安裝Charles證書;3、Charles使能Https抓包功能。
解決抓Android手機應(yīng)用Https包出現(xiàn)Unknown也是三步,第1步與第3步與上述相同,不同點在第2步,因為抓取對象不同,故設(shè)置代理和安裝Charles證書的對象由瀏覽器變?yōu)槭謾C。
1、Android手機設(shè)置代理
(1)先打開電腦上Charles,將電腦設(shè)置為代理,這里主要設(shè)置代理的端口號。


這里需要注意的是,電腦上運行Charles,電腦就可以認為是一臺代理服務(wù)器,電腦上的軟件例如瀏覽器若打開了代理服務(wù),網(wǎng)絡(luò)請求會經(jīng)過Charles,有些時候會影響網(wǎng)絡(luò)訪問
(2)手機聯(lián)網(wǎng),選擇和電腦相同的網(wǎng)絡(luò),然后修改網(wǎng)絡(luò)
例如電腦鏈接WiFi,手機也選擇連接相同的WiFi,打開手機WLAN,在WLAN列表找到連接的網(wǎng)絡(luò),選中后,點擊“修改網(wǎng)絡(luò)”

進入網(wǎng)絡(luò)詳情界面,勾上“顯示高級選項”,代理設(shè)置部分顯示如下圖,如不勾選,代理不會出現(xiàn)。

如上圖所示,“代理”選擇“手動”,“服務(wù)器主機名”填寫Charles所在電腦的IP地址,該地址獲取方式如下:
i 電腦端在運行(快捷鍵:Win + R)中輸入“CMD”,打開如下所示命令行界面

ii 在命令行界面輸入指令“ipconfig”,獲取電腦IP信息

圖上紅線所示即為手機配置代理的服務(wù)器主機名,而手機配置代理的服務(wù)器端口號則為Charels上配置的代理端口號
主機名和端口填寫完整后,點擊保存按鈕,至此手機的代理配置完成,手機上的應(yīng)用網(wǎng)絡(luò)請求會經(jīng)過Charles這個代理
注意:手機配置好代理后,第一次進行網(wǎng)絡(luò)請求,Charles會出現(xiàn)如下消息,點擊同意,手機正常訪問互聯(lián)網(wǎng),且Charles可以抓取HTTP報文
2、安裝Charles證書
按照步驟1成功配置代理后,只能抓取手機的Http報文,對于Https的報文,則會顯示Unknown,原因是對于Https的報文采用了證書和密鑰加密,而安裝了Charles證書后,對于手機,Charles是偽裝的服務(wù)器,對于服務(wù)器,Charles是偽裝的手機,這樣證書和密鑰都是Charles提供的,故報文接口數(shù)據(jù)包對Charles而言,完全是裸著的
(1)進入WLAN高級設(shè)置界面

(2)點擊安裝證書

注意:這里的證書文件和瀏覽器下載證書文件一樣,也是通過Charles的提示從chnl.pro/ssl下載,打開手機瀏覽器,輸入下載地址,自動下載證書文件
(3)選擇通過手機瀏覽器下載好的Charles證書

注意:需要注意下載的證書文件的名稱是否完整,正確的證書文件名稱如上圖,如果證書文件名稱與上圖不一致,根據(jù)作者實際使用Charles的經(jīng)驗,就算證書下載成功且手機提示安裝成功,依然不能正確抓取https的報文的。此時我們需要換一個瀏覽器,建議QQ瀏覽器,同樣在瀏覽器網(wǎng)址欄輸入chls.pro/ssl下載證書,此時證書文件名稱如上圖,同時還需要注意如果下載的證書文件后綴非 .crt,需要將證書文件后綴修改為 .crt,文件名稱不變,否則識別不了證書文件。
(4)給安裝的證書命名并如下圖設(shè)置

點擊確定,至此手機上Charles證書安裝成功,https的包不在顯示為Unknown。
注意:除了手機在未安裝證書的情況下,Charles抓取Https包會出現(xiàn)Unknown外,在網(wǎng)絡(luò)出現(xiàn)問題,接口響應(yīng)超時或者響應(yīng)失敗的情況也會出現(xiàn)Unknown