目錄
1、Charles原理
2、Charles破解
3、設置抓取https協議
4、手機鏈接Charles配置
5、代理設置成功,從新發起網絡請求,解密過的請求數據出如今Charles主界面,ok! java
Charles下載地址: https://www.charlesproxy.com/download/ web
下載地址: https://www.zzzmode.com/mytools/charles/ 瀏覽器
一、輸入RegisterName(此名稱隨意,用於顯示 Registered to xxx) 二、選擇本地已安裝的版本,點擊生成,並下載Charles.jar文件 三、Mac安裝地址:替換本地 /Applications/Charles.app/Contents/Java 目錄下的Charles.jar文件 Windows安裝地址:替換本地安裝目錄下的charles.jar文件
Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4
重啓Charles,點擊Tools -> help,第二欄顯示Registered to xxx, 即破解成功!(破解成功後的charles在啓動時,左下角的倒計時也沒有了)服務器
一、Proxy端口設置網絡
選中「Charles -> Proxy -> Proxy Settings」,設置Port爲8888,選中「Enable transparent HTTP proxying」選項;app
二、在彈框中選擇「Grant Privileges」信任;若是點擊「Not Yet」或者關閉按鈕,Charles將會取消Mac代理,須要手動設置,設置時會再次彈出窗口;加密
三、SSL證書-安裝與信任三種證書:鑰匙串根證書,模擬器證書,手機和瀏覽器證書spa
選擇安裝 Help -> SSL Proxying -> 如下三項證書:.net
Install Charles Root Certificate; #鑰匙串根證書,選擇始終信任,輸入電腦密碼 Install Charles Root Certificate on a Mobile Devices Or Remote Browser #手機和瀏覽器證書,在彈框提示下安裝手機ssl證書到手機
打開鑰匙串,Charles Proxy CA證書,一開始是不被信任的;選擇始終信任,輸入電腦密碼;3d
四、SSL代理和端口號設置
https請求被攔截:https請求會顯示unkonwn 就是不能解析https請求;
(1)Proxy-> SSL Proxying Settings->SSL Proxying,選中"Enable SSL Proxying"; (2)添加host,端口號爲443。這裏是把全部的host都設置進去;固然也能夠設置指定的host,端口不變; (3)請求就能夠解析出來了
注意:手機的無線網要和電腦的無線網保持一致,必須是同一wifi;
4.1查看電腦的ip地址,有如下3種方式:
4.2手機鏈接Charles抓包配置
(1)打開手機的HTTP代理,服務器爲電腦的IP,端口號爲8888; (2)手機端訪問網絡,Charles會彈出確認窗,點擊Allow(注意:首次設置代理,須要在手機瀏覽器上安裝證書;在手機瀏覽器中輸入:chls.pro/ssl 下載證書;詳情看4.3); (3)不須要抓包時,把手機代理恢復默認值,不然拖慢網速;
4.3查看https請求時,手機端需安裝Charles的CA證書。安裝SSL證書到手機設備時,Charles會彈框提示,選擇「Allow」:
4.4手機受權
手機安裝地址:chls.pro/ssl,直接在手機瀏覽器的地址欄輸入,安裝容許就行了;
安卓手機可直接受權,IOS手機則須要在「設置->通用」中打開相應的權限;
一、設置->通用->關於本機->證書信任設置,打開Charles Proxy CA的開關信任此證書; 二、設置->通用->描述文件與設備管理,打開Charles Proxy CA的開關信任此證書;
爲何要裝Charles根證書:
由於Charles最終代理咱們的ssl流量是要發回給咱們的,而這個過程是咱們和本地Charles代理的ssl通訊,若是咱們沒有Charles簽發的根證書,那麼咱們將沒法信任Charles轉發的任何ssl流量。
另外因爲咱們在Charles裏面設置了和服務器對應的客戶端證書PKCS12格式的包文件(pkcs12中包含被根證書籤出來的公私鑰),因此咱們能夠解密由指定host服務器發送過來的加密的數據,從而像抓包http包同樣看到這些數據包裏面的數據。Charles負責代替咱們和該服務器發送接收加密數據,而咱們還須要和Charles自己再進行一次通訊,這樣說應該就比較明確了。
推薦一篇頗有趣的博客:亂碼的原因 —— SSL 加密 【往下翻一點,讓小明帶你走入SSL加密的世界吧~】