Charles簡介
Charles是一個HTTP代理服務器,HTTP監視器,反轉代理服務器,當瀏覽器連接Charles的代理訪問互聯網時,Charles可以監控瀏覽器發送和接收的所有數據。
它允許一個開發者查看所有連接互聯網的HTTP通信,這些包括request, response和HTTP headers (包含cookies與caching信息)。
1. 下載&安裝
官網下載:https://www.charlesproxy.com/latest-release/download.do

下載完成,要是沒有桌面圖標可以手動進行添加
2、在線破解工具使用,在線生成 注冊名和注冊秘鑰
工具地址:https://www.zzzmode.com/mytools/charles/
3. 下面是破解操作步驟【很關鍵的一步,如果不破解就無法正常使用】

打開 Charles 進入help—>Register Charles,在彈出框中輸入如下信息(你注冊的):
Registered Name:lingajijun
License Key:ec75fe257748c84613
輸入后,點擊:Resgister
出現如下圖所示信息,則注冊成功。
二. 配置
主要解決兩個問題:
1. 訪問帶https網站被攔截問題
2. 訪問帶https網站出現亂碼問題。
1. 解決訪問https網站被攔截問題?
1、進入help—>SSL Proxying—>Install Charles Root Certificate
2、進入后,根據窗口提示,安裝進相應位置。提示為將該證書安裝到"受信任的根證書頒發機構"
3、點擊安裝證書,出現如下窗口,選擇“本地計算機”,點擊"下一步"
4、選擇“將所有的證書與都放入下列存儲”,並通過“瀏覽”選擇存儲位置。根據之前的提示,這里我們需要選擇存儲到“受信任的根證書頒發機構”
5、繼續按照提示點擊下一步,直到出現提示成功的窗口,則證書安裝成功。
如果證書位置安裝錯誤想刪除或者想查看安裝的證書,可以通過控制面板—>搜索“證書”—>管理計算機證書
找到之前安裝的位置,會出現此目錄下所有證書,此時可以選擇刪除之前安裝錯誤的證書或者查看相關證書。
2. 解決抓取內容出現亂碼問題?
安裝好后的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后面的感嘆號,安卓應該是長按連接的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也能抓取下來了