Charles代理調(diào)試

最近在做APP上的活動(dòng)頁面的調(diào)試工作,在調(diào)試的過程中遇到了一些麻煩,比如線上報(bào)bug,本地很難在瀏覽器上模擬真機(jī)復(fù)現(xiàn),頻繁改動(dòng)代碼,頻繁上線很麻煩,于是調(diào)研了一下抓包工具,charles,一下是使用教程及遇到的一些問題和解決方法:

一.需要的工具

1.下載charles并安裝

2.需要一臺(tái)有root權(quán)限的手機(jī)

注意:

小米手機(jī)自帶root為不完整root,需要進(jìn)行完整root(即解鎖system)。方法如下:

安裝adb工具 :brew install Caskroom/cask/android-platform-tools# 沒有安裝homebrew的先安裝homebrew

root? :? adb devices# 測試adb是否安裝成功,成功了會(huì)出現(xiàn)設(shè)備的hash值

? ? ? ? ? ?adb root

? ? ? ? ? ?adb disable-verity# 禁用系統(tǒng)驗(yàn)證

二.配置http代理

proxy -> proxy settings -> proxies


選擇監(jiān)聽8888端口,并勾選Enable SOCKS proxy這樣也可以監(jiān)聽瀏覽器的http請求



三.配置SSL代理

proxy -> SSL Proxy Settings

點(diǎn)add添加需要監(jiān)視的域名,支持 *號(hào)通配符,端口一般都是443


四.為手機(jī)配置http代理

以小米手機(jī)為例

設(shè)置 -> wlan -> 選擇一個(gè)網(wǎng)絡(luò)并鏈接 -> 點(diǎn)擊此網(wǎng)絡(luò)的詳情(右邊的箭頭icon)-> 設(shè)置代理為手動(dòng) -> 主機(jī)名為你的電腦ip -> 端口號(hào)8888 -> 點(diǎn)擊右上角對號(hào)設(shè)置成功?


這時(shí)候charles會(huì)出現(xiàn)是否允許此設(shè)備鏈接的提示,點(diǎn)擊allow就行啦

五.為手機(jī)安裝根證書

Charles的根證書下載網(wǎng)址: chls.pro/ssl?

以小米手機(jī)為例:

1.需要下載一個(gè)第三方瀏覽器

在瀏覽器中輸入?chls.pro/ssl 下載證書

更改證書后綴為.crt :?

? ? ? 系統(tǒng)工具-文件管理-手機(jī)-QQBrowser-其他(證書的文件路徑),找到charles-proxy-ssl-proxying-certificate.pem,更改后綴

設(shè)置-> wlan -> 下滑到高級設(shè)置 -> 安裝證書 -> 找到剛剛修改過的文件點(diǎn)擊并安裝 -> 系統(tǒng)提示安裝成功


六.為電腦安裝根證書

Help -> SSL Proxy -> install charles root certicate

進(jìn)入鑰匙串信任此證書


七.訪問需要代理的地址


找到需要代理的地址,右鍵map local?



設(shè)置local path,點(diǎn)擊choose可以選擇本地文件,確認(rèn)

這樣就代理成功啦

八.可能會(huì)出現(xiàn)的問題

當(dāng)你訪問https的資源時(shí),出現(xiàn)以下情況


查看Help -> SSL Proxying?



說明根證書沒有安裝成功,在Android 7.0及以上版本會(huì)出現(xiàn)這樣的問題

解決方法:將證書安裝到系統(tǒng)證書中(需要root)

系統(tǒng)證書的目錄是:/system/etc/security/cacerts/

每個(gè)證書的命名規(guī)則為:<Certificate_Hash>.<Number>

Certificate_Hash表示證書文件的hash值,Number是為了防止證書文件的hash值一致而增加的后綴

證書的hash值可以由命令計(jì)算出來,在終端輸入openssl x509 -subject_hash_old -in <Certificate_File>,其中Certificate_File為證書路徑,將證書重命名為hash.0放入系統(tǒng)證書目錄,之后你就可以正常抓包了。


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

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