Android Charles 安裝證書(shū), 抓包

PC端:

Linux:

1. 官網(wǎng)下載壓縮包, 直接可以運(yùn)行. 另外激活可以自己找辦法啦

2. Help >> SSL Proxying >> Install Charles Root Certificate

這時(shí)候會(huì)發(fā)現(xiàn), 沒(méi)法直接Import, 如果這樣, 需要我們手動(dòng)導(dǎo)入證書(shū)到操作系統(tǒng), 具體步驟如下:

(1) home目錄下,找到.charles/ca/文件夾,?找到charles-proxy-ssl-proxying-certificate.cer和charles-proxy-ssl-proxying-certificate.pem兩個(gè)文件

(2)?轉(zhuǎn)換格式:終端中執(zhí)行

openssl?x509?-outform?der?-in?charles-proxy-ssl-proxying-certificate.pem?-out?charles-proxy-ssl-proxying-certificate.crt

(3)?在/usr/share/ca-certificates文件夾下新建一個(gè)目錄charles淀弹,再將轉(zhuǎn)換格式后得到的證書(shū)charles-proxy-ssl-proxying-certificate.crt復(fù)制到/usr/share/ca-certificates/charles 中

(4)?在/etc/ca-certificates.conf這個(gè)配置文件的最后追加charles/charles-proxy-ssl-proxying-certificate.crt密浑,用sudo update-ca-certificates更新證書(shū)金赦,完成后發(fā)現(xiàn)/etc/ssl/certs目錄中應(yīng)該多了一個(gè)charles-proxy-ssl-proxying-certificate.pem文件跷究,表示成功

(5)?在Charles中Proxy -> SSL Proxying Settings -> SSL Proxy中的include這一欄,? Add一個(gè)Host為*,Port為443的Location,主要是用來(lái)代理所有的HTTPS請(qǐng)求

3: Proxy >> Proxy Settings

默認(rèn)HTTP Proxy的端口是8888,? 但是如果這個(gè)端口被占用了, 需要自己修改一下, 比如9998


Mac Book:?

沒(méi)有具體操作, 如果也需要手動(dòng)導(dǎo)入, 具體流程都大同小異


Android端:

由于安卓版本的不同, 默認(rèn)的網(wǎng)絡(luò)配置是不一樣的:

以 Android 9(API 級(jí)別 28)及更高版本為目標(biāo)平臺(tái)的應(yīng)用的默認(rèn)配置如下所示:

? <base-config cleartextTrafficPermitted="false">? ? ? ?

????????<trust-anchors>? ? ? ? ? ?

????????????????<certificates src="system" />? ? ?

????????? </trust-anchors>? ?

</base-config>

更多配置信息可以見(jiàn):?網(wǎng)絡(luò)安全配置

1. 所以通常, 我們APP的配置可以這樣寫(xiě):

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>

<base-config cleartextTrafficPermitted="false">

<trust-anchors>

<certificates src="system" />

</trust-anchors>

</base-config>

<!--debug模式般甲,可以使用用戶(hù)自己安裝的正式,比如charles抓包安裝的證書(shū)鹅颊, 這個(gè)配置只在 android:debuggable 為 "true" 時(shí)將應(yīng)用的重寫(xiě) IDE 和構(gòu)建工具生成的非發(fā)布版本通常屬于此情況-->

<debug-overrides>

<!-- Trust user added CAs while debuggable only -->

<trust-anchors>

<certificates src="system" />

<certificates src="user" />

</trust-anchors>

</debug-overrides>

</network-security-config>

對(duì)于沒(méi)有root的手機(jī), 建議設(shè)置成如上, 其實(shí)就是debug下信任用戶(hù)安裝的證書(shū), https設(shè)置成明文

2. 非root的手機(jī)安裝用戶(hù)證書(shū):

這一步比較簡(jiǎn)單, 只需要把手動(dòng)安裝到Linux PC的證書(shū), adb push到手機(jī)的SD卡, 文件管理中點(diǎn)擊安裝即可

3. 手機(jī)設(shè)置網(wǎng)絡(luò)代理:

打開(kāi)WiFi網(wǎng)絡(luò), 確保和PC連接在同一個(gè)網(wǎng)段的網(wǎng)絡(luò)

進(jìn)入連接好的網(wǎng)絡(luò)的設(shè)置頁(yè)面, 找到代理這一欄, 改為手動(dòng), 填寫(xiě)PC的IP地址, 端口號(hào)是我們上一步驟中自己設(shè)置的端口. 最后點(diǎn)擊保存,稍等一會(huì), PC端會(huì)彈出對(duì)話(huà)框, 我們點(diǎn)擊接受即可


到此為止, 我們自己的APP就可以抓取數(shù)據(jù)了


4. 對(duì)于Root后的手機(jī), 我們可以選擇安裝系統(tǒng)證書(shū)

這樣, 所有的APP我們都可以抓取數(shù)據(jù)了, 并且不受<network-security-config>的配置影響

安裝步驟如下:

# 以 root 權(quán)限執(zhí)行

adb root

# 重新掛載

adb remount

# 解決目錄 read only 關(guān)鍵命令行

adb disable-verity

# 重啟 adb reboot

# 以 root 權(quán)限運(yùn)行

adb root

# 重新掛載

adb remount

# 設(shè)置讀寫(xiě)

adb shell mount -o rw,remount /system

準(zhǔn)備證書(shū):

# 以下執(zhí)行命令都是以證書(shū)文件在當(dāng)前目錄為前提

#??<Certificate_File> 使用?charles-proxy-ssl-proxying-certificate.pem

通過(guò)下面的命令會(huì)獲取到證書(shū)的hash值, 然后復(fù)制?charles-proxy-ssl-proxying-certificate.crt 為?<Certificate_Hash.0>

至于為什么要加一個(gè).0? ?因?yàn)閔ash值是有可能重復(fù)的, 如果重復(fù),則需要累加此值

# 計(jì)算 Certificate_Hash 命令

openssl x509 -subject_hash_old -in <Certificate_File_pem>

# 重命名 `<Certificate_File_crt>` 為 `<Certificate_Hash.0>`

mv <Certificate_File> <Certificate_Hash.0>

最后,?安裝證書(shū)到安卓系統(tǒng)證書(shū)目錄 /system/etc/security/cacerts

# 安裝命令

adb push <Certificate_Hash>.0 /system/etc/security/cacerts

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末敷存,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子堪伍,更是在濱河造成了極大的恐慌锚烦,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帝雇,死亡現(xiàn)場(chǎng)離奇詭異涮俄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)尸闸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)彻亲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吮廉,你說(shuō)我怎么就攤上這事苞尝。” “怎么了宦芦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵宙址,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我调卑,道長(zhǎng)抡砂,這世上最難降的妖魔是什么大咱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮注益,結(jié)果婚禮上碴巾,老公的妹妹穿的比我還像新娘。我一直安慰自己聊浅,他們只是感情好餐抢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著低匙,像睡著了一般旷痕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顽冶,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天欺抗,我揣著相機(jī)與錄音,去河邊找鬼强重。 笑死绞呈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的间景。 我是一名探鬼主播佃声,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼倘要!你這毒婦竟也來(lái)了圾亏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤封拧,失蹤者是張志新(化名)和其女友劉穎志鹃,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體泽西,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡曹铃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捧杉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陕见。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖糠溜,靈堂內(nèi)的尸體忽然破棺而出淳玩,到底是詐尸還是另有隱情,我是刑警寧澤非竿,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布蜕着,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏承匣。R本人自食惡果不足惜蓖乘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望韧骗。 院中可真熱鬧嘉抒,春花似錦、人聲如沸袍暴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)政模。三九已至岗宣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淋样,已是汗流浹背耗式。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趁猴,地道東北人刊咳。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像儡司,于是被迫代替她去往敵國(guó)和親娱挨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354