網絡抓包工具--Charles

網絡抓包工具–Charles

Charles是一款用於http代理/http監視器/反向代理工具,它使開發人員能夠查看客戶端和服務端之間的所有http和ssl/https通信–包括請求、響應和http頭(其中包含cookies和緩存信息),是一款很值得推薦的測試工具。與之同類型的工具有fiddler,但相較來說,Charles使用起來比fiddler更直觀,更方便,這在於Charles提供樹狀結構功能,將同一url的接口自動進行歸類。

HTTP代理原理

網絡代理即在client和service中間增加一個代理服務,我們可以通過以下圖理解:
在這裏插入圖片描述
代理服務器承擔了兩個角色–服務端和客戶端。
在上圖中的1階段,它扮演了服務器的角色,接收Client端發起的請求數據;經過處理之後轉發給真正的服務端,這時它扮演的是client端的角色,即圖中的2階段。響應結果是先經過了代理服務器後再返回給Client。
在https請求時,代理服務器首先和Client端建立了一對公鑰和私鑰,其次它又和真正的服務器建立了另一對的公鑰和私鑰,從而代理服務器本身承載着Service和Client的公鑰和私鑰,這樣代理服務器就可以成功解密https請求的報文。

Charles的HTTP/HTTPS的代理設置

  • 安裝Charles,點擊訪問官網即可下載安裝。:Charles運行需安裝Java環境。
  • 運行Charles,在菜單欄中點擊【Proxy】,選擇點擊【Proxy Setting…】,操作如下圖,點擊【OK】保存。
    在這裏插入圖片描述
  • 點擊菜單欄中的【Proxy】,選擇點擊【SSL Proxy Setting…】,選擇【SSL Proxying】頁,操作如下圖。一般https協議的默認端口是443,這裏添加協議的端口號做過濾,可根據實際情況添加。
    在這裏插入圖片描述
  • 點擊選擇【Client Certificates】頁,操作如下圖,點擊【OK】保存。
    在這裏插入圖片描述

Client端的代理設置

Client端一般包含PC、平板和手機,以PC和手機爲例(平板和手機的操作上是一樣的)。

PC的代理設設置

建議用FireFox瀏覽器
打開FireFox瀏覽器,點擊進入【選項】–【網絡設置】–【設置…】

打開設置操作如下圖,【確定】保存

在瀏覽器中,輸入 http://charlesproxy.com/getssl 訪問下載代理證書,操作如下圖
在這裏插入圖片描述
完成了證書安裝之後,即完成了代理設置。
在抓取PC本地的網絡請求前,需先打開Charles-windows代理設置,如下圖
在這裏插入圖片描述
在瀏覽器中打開https://www.baidu.com ,在Charles中就可以看到請求的報文信息,如下圖

手機客戶端的代理設置

以Android爲例(建議選用Android 7.0以下的手機)
首先將手機wifi開啓代理,如下圖

ip地址填寫爲 PC的ip地址,端口爲設置的端口號(一般設置默認8888)
打開手機瀏覽器,輸入http://charlesproxy.com/getssl 下載證書。部分手機不會自動安裝,需手動安裝。步驟如下圖,進入手機【設置】–【安全設置】,進入【設備管理和憑證】

選擇【從SD卡安裝】,選擇Charles的證書安裝

到這裏基本上配置完成。
如果是Ios的設備,有兩個地方需要開啓信任

  • 在證書管理頁選擇信任
  • 在關於手機【通用】–【關於本機】–【證書信任設置】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章