1. charles安裝配置與抓包詳解
Charles簡介
Charles是一個HTTP代理伺服器,HTTP監視器,反轉代理伺服器,當瀏覽器連接Charles的代理訪問互聯網時,Charles可以監控瀏覽器發送和接收的所有數據。
它允許一個開發者查看所有連接互聯網的HTTP通訊,這些包括request, response和HTTP headers (包含cookies與caching資訊)。
1. 下載&安裝
官網下載://www.charlesproxy.com/latest-release/download.do
下載完成,要是沒有桌面圖標可以手動進行添加
2、在線破解工具使用,在線生成 註冊名和註冊秘鑰
工具地址://www.zzzmode.com/mytools/charles/
3. 下面是破解操作步驟【很關鍵的一步,如果不破解就無法正常使用】

打開 Charles 進入help—>Register Charles,在彈出框中輸入如下資訊(你註冊的):
Registered Name:lingajijun
License Key:ec75fe257748c84613
輸入後,點擊:Resgister
出現如下圖所示資訊,則註冊成功。
二. 配置
主要解決兩個問題:
1. 訪問帶https網站被攔截問題
2. 訪問帶https網站出現亂碼問題。
3.1 解決訪問https網站被攔截問題
1、進入help—>SSL Proxying—>Install Charles Root Certificate
2、進入後,根據窗口提示,安裝進相應位置。提示為將該證書安裝到”受信任的根證書頒發機構”
3、點擊安裝證書,出現如下窗口,選擇「本地電腦」,點擊”下一步”
4、選擇「將所有的證書與都放入下列存儲」,並通過「瀏覽」選擇存儲位置。根據之前的提示,這裡我們需要選擇存儲到「受信任的根證書頒發機構」
5、繼續按照提示點擊下一步,直到出現提示成功的窗口,則證書安裝成功。
如果證書位置安裝錯誤想刪除或者想查看安裝的證書,可以通過控制面板—>搜索「證書」—>管理電腦證書
找到之前安裝的位置,會出現此目錄下所有證書,此時可以選擇刪除之前安裝錯誤的證書或者查看相關證書。
解決抓取內容出現亂碼問題
安裝好後的Charles打開有的頁面顯示為亂碼,這是因為https網頁的請求默認不解析,所以會呈現亂碼狀態。但是我們可以通過設置讓Charles來解析https網頁.
1、Proxy—>SSL Proxying Settings
2、進入設置窗口,Host填為,代表後面出現的任意Host,port設置443*
3、設置好後重啟軟體,刷新一下百度首頁。這時就可以正常抓取百度首頁並解析
三. 抓包
1、charles的說明
Charles其實是一款代理伺服器,通過過將自己設置成系統(電腦或者瀏覽器)的網路訪問代理伺服器,然後截取請求和請求結果達到分析抓包的目的。該軟體是用Java寫的,能夠在Windows,Mac,Linux上使用。安裝Charles的時候要先裝好Java環境。
Charles的主要功能:
(1)截取Http 和 Https 網路封包。
(2)支援重發網路請求,方便後端調試。
(3)支援修改網路請求參數。
(4)支援網路請求的截獲並動態修改。
(5)支援模擬慢速網路。
2、Web 抓取HTTPS協議
(1)安裝ssl證書
幫助–>SSL代理—>安裝charles證書
2.2 點擊安裝證書 -> 本地電腦 -> 將所有證書都放到下列儲存 -> 點擊下一步完成即可
2.3 設置設置HTTP/HTTPS協議埠
Proxy -> SSL Proxying Settiongs 在彈出選項卡中,勾選【Enable SSL Proxying】點擊【add】
添加以下Host和Port
1. *:*
2. *:443
3. *:80
解釋:
在Host輸入【*】表示接收任何主機
80是http協議的默認埠
443是https協議的默認埠
(2)打開抓取web端設置
Proxy -> Windows Proxy 勾選中即可
2.5 訪問 www.baidu.com 能夠抓取到介面並且介面下有數據表示成功
注意:如果介面下抓取是unknown表示失敗 1. 協議未配置 2. 證書未安裝 3. 防火牆未關閉
3. Charles手機抓包證書安裝(IOS)
App抓包
Charles抓包不僅僅可以抓取來在電腦端的HTTP請求,也能夠抓取來自App發出的HTTP請求,但是手機抓包需要在電腦端配置下,並且同時需要手機和電腦在同一網路下並且手機VPN也需要關閉
3.1 埠號設置 Proxy -> Proxy Setting 默認埠號 8888
3.2 查看自己IP地址和埠號和下載證書網址
3.3 手機端設置:
1,打開手機的設置頁面;
2,選擇【無線區域網】;
3,IOS點擊連接的WIFI後面的感嘆號,Android應該是長按連接的WIFI;(註:這裡主要以IOS為例)
4,點擊【配置代理】–>【手動】;
5,輸入本機【IP地址】以及【埠號】,根據自己情況合理配置;
6,點擊【存儲】
再次說明:伺服器IP和埠號需要用到自己的IP和Charles上設置的埠
查看方法:Help -> SSl Proxying -> Install Charles Root Certificate on a mobile Device or Remote Browser(步驟3.2 有截圖)
3.4 檢驗代理配置是否成功
打開瀏覽器驗證下手機請求,當我們看到Charles里能抓到這個連接,就說明配置沒問題,看到unknown,這個不要緊,
那是我們沒有安裝針對手機端的證書,下面繼續我們手機端HTTPS證書安裝
通過上面的設置,雖然來自我們手機端的Http協議請求可以抓取到,但是HTTPS協議的包是不能抓取的,
需要安裝配置證書才可以,現在手機上大多數都已經切到https很少由http協議的了
3.5 Charles配置:
手機打開瀏覽器輸入 chls.pro/ssl,如下提示,點擊允許(如果下載失敗,請更換瀏覽器重新在下)
3.6 進入設置 -> 描述文件與設備管理 -> 點擊未安裝的證書進行安裝
3.7 安裝成功後需要在 通用 -> 關於本機 -> 證書信任設置 中勾選Charles證書(針對於IOS手機)
最後,重新打開charles,手機訪問網頁/app就可以了
注意事項:
手機和電腦需要在同一網路下
手機VPN需要關閉
不同電腦對應不同證書,所以說你連接其他電腦需要重新下載手機證書
如果抓出來的介面顯示Unknown可以把防火牆關閉,再打開charles重新抓取
=============================================================================================================================================
(3)配置抓包,填入默認代理埠 8888,且勾選 「Enable transparent HTTP proxying」 就完成了設置。
3、手機端抓包
(1)使手機和電腦在同一個區域網內
手機和電腦必須在同一個網路/wifi里,手機選擇和電腦相同wifi—>長按此wifi彈框中選擇修改網路—>顯示高級選項—>伺服器主機名輸入框中輸入電腦ip地址,伺服器埠號填寫8888——>保存即可,此時手機和電腦綁定在一起一遍電腦抓手機上請求網路數據.
第一步:手機安裝SSL證書
進入”Help”->”Install Charles Root Certificate on a Mobile Device or remote Browser”,點擊
這時會有一個彈框,意思是要給手機設置代理,內容是192.168.1.103:8888,然後用手機瀏覽器打開chls.pro/ssl
點擊立即下載
在手機設置->高級設置->安全里開啟未知來源應用下載和外部來源應用安裝
在手機文件管理里找到證書,將後綴pem改成crt,點擊安裝即可
這時發現手機上的HTTPS也能抓取下來了