Charles 是使用 WebProxy(HTTP Proxy / HTTP Monitor) ,透過代理伺服器(Proxy Server)機制,瀏覽器或其他有透過網路的應用程式,將透過設定Charles 顯示或記錄所有的發送或接收的數據
官方下載連結 支援win / mac / linux
Charles 是付費軟體,可以免費使用 ,個人 USD $50 / license 購買頁面
免費使用的限制:
免費版可以使用所有的功能,因此是很佛心軟體
如果依照上面說明圖操作,可能可不用花一分鐘就測試完,發現用 Charles 攔截資料方常的方便UI 非常簡潔
我們在攔截HTTPS網站會發現,攔截到的資料是一片亂碼
原因是攔截的資料 HTTPS ,內容都已經金鑰加密加密。
透過代理伺服器會把自己偽裝成客戶端解開加密跟伺服器間的加密,並使用自己的金鑰跟客戶端加解密,這樣就可以在代理伺服器解析傳送及接收資料
因此要解析 HTTPS 要在Charles 設定 Enable SSL , 並先讓攔截資料的客戶端授權 Charles CA 憑證
Help → SSL Proxying → Install Charles Root Certiflcate
目前例子是使用電腦攔截HTTPS 所以憑證是安裝在電腦上
安裝CA憑證後mac 可以使用鑰匙圈確認,是否安裝成功,並要確認有信任此憑證
設定後,可以攔截到 SSL (HTTPS) 的資料
如下圖可以看到已經可以攔截資料,並看到採用 TLS
註:目前設定針對 電腦上操作,手機攔截放到後面章節說明
使用 Charles 有個特色是軟體會自動把系統網路 HTTP / HTTPS 都設定到 Porxy 上,關閉軟體後會自動更改回來,但有時軟體當掉後 ,不會自動切換回來,就會造常網路連線都出現問題
自動hook Proxy Server 的示意圖
自動Hook 當然有好有壞,自動綁定好處當然是什麼東不用做就已經處理好,缺點就不是自己控制容易忘記原來很貼心的自動幫你處理,有時候就會忘記關掉
Charles 是我在proxy 上最常用的軟體,原因就是介面乾淨,簡單一目了然
之前跟朋友一起團購,是值得用新台幣支持的好軟體