Charles踩坑記錄

Charles的妙用在于能夠偽裝成中間人干預(yù)https通信。它使用了中間人代理的方法(man-in-the-middle,也常作為一個(gè)黑客攻擊手段),代替你的app接受server的證書,然后使用這個(gè)證書通過SSL和server通信;同時(shí),Charles會(huì)動(dòng)態(tài)的生成一個(gè)對(duì)應(yīng)的證書(用Charles的CA證書簽名),然后使用這個(gè)證書和你的app通信,這樣就完成了一個(gè)中間人代理,從而可以把a(bǔ)pp和server的https包給抓到和解碼出來。

一、真機(jī)安裝根證書

總體步驟是:safari安裝根證書 ---> 添加需要檢測的域名列表 ---> 抓包分析

1、首先要安裝Charles的根證書,用iOS設(shè)備的safari打開http://www.charlesproxy.com/getssl,會(huì)彈出一個(gè)提示框讓你安裝證書,確認(rèn)安裝即可。然后到設(shè)置->關(guān)于本機(jī)->證書信任設(shè)置中信任Charles根證書

2、打開菜單Proxy -> SSL Proxying Settings...,在彈出的設(shè)置框中,勾選Enable SSL Proxying,同時(shí)添加需要代理的域名,端口號(hào)統(tǒng)一為443(這里直接設(shè)置成了*來代理全部https域名)

3、可以通過breakpoint修改請(qǐng)求或者返回?cái)?shù)據(jù)

二、模擬器安裝根證書

模擬器安裝根證書比較簡單:

image

坑:安裝后需要重啟模擬器才能正常抓HTTPS包

三、MAC安裝根證書

直接在Charles的Help菜單中安裝;安裝完成后去系統(tǒng)的鑰匙串訪問中右鍵證書信任它。

四、可能踩到的坑

1、沒有安裝Charles的證書,卻開啟了Enable SSL Proxying,那么會(huì)造成所有的https訪問都會(huì)失敗,同時(shí)Charles會(huì)在每個(gè)https請(qǐng)求的overview那里友好的提示你需要信任Charles的根證書:“You may need to configure your browser or application to trust the Charles Root Certificate”,意思是根證書安裝失敗。這時(shí)重走第1步就行。

image

2、通過斷點(diǎn)的方式修改請(qǐng)求時(shí),客戶端的請(qǐng)求超時(shí)計(jì)時(shí)器一直在走,因此可能導(dǎo)致超時(shí),這點(diǎn)要注意下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容