[MAC]安裝配置Charles


★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公眾號:山青詠芝(let_us_code)
➤博主域名:https://www.zengqiang.org
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/12200080.html
➤如果鏈接不是山青詠芝的博客園地址,則可能是爬取作者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持作者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

熱烈歡迎,請直接點擊!!!

進入博主App Store主頁,下載使用各個作品!!!

注:博主將堅持每月上線一個新app!!!

1. 安裝

官網下載地址:https://www.charlesproxy.com/download/

2. 激活

打開Charles,【Help】->【Register Charles】

Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

3. 配置

3.1 證書安裝

 依次點擊四個安裝,將Charles的根證書安裝到相應位置:【Help】->【SSL Proxying】->

【Install Charles Root Certificate】:在【鑰匙串訪問】中找到Charles證書,雙擊證書,改成【始終信任】

【Install Charles Root Certificate in iOS Simulators】:在iOS模擬器中安裝證書。

【Install Charles Root Certificate in Java VMs】:如果你已經安裝了Java庫,即可安裝。

【Install Charles Root Certificate on a Mobile Device or Remote Browser】:

在手機端或遠程瀏覽器中安裝。【系統偏好設置】->【共享】:打開互聯網共享。

將MAC和iPhone連接在同一個局域網中,按照提示在iPhone端所連接的Wifi中設置代理:

設置iPhone端Wi-Fi代理:【無線局域網】->【連接的Wifi】->【配置代理】IP:192.168.2.97 端口:8888

點擊:【Allow】,第一次會提示,后面不再出現提示。

 在iPhone的【Safari瀏覽器】中輸入,必須使用iPhone的Safari瀏覽器!

chls.pro/ssl

依據下圖操作:在設置中點擊安裝【已下載描述文件】 

 

 

設置信任證書:【通用】->【關於本機】->【證書信任設置】->【啟用完全信任】

 

3.2 代理設置

可以設置抓包數據類型,包括http與socket數據。可以根據需要在proxies欄下勾選。 

如果需要抓Mac上的瀏覽器數據,需要在macOS欄,勾選http.

3.3 手機使用代理

手機連接局域網下wifi,與charles必須為同一外網下。

  1. 自動代理

    在已連接的wifi上點擊更多,進入配置代理頁。勾選自動,在輸入框URL中輸入:

    Https://chls.pro/10.10.11.235:6666.pac

    即設置了自動代理。

  2. 或者設置手動代理

    輸入charles的ip與端口即可

3.4 HTTPS抓包

HTTPS抓包,需要經過SSL。

Proxy->SSL Proxying setting

會打開如下界面。點擊Add,Host欄與Port欄都填空(表示抓所有SSL請求),確定即可。

 
注:如果未配置此項,在訪問https數據的時候,你會發現訪問失敗,Structure欄顯示小鎖標識。
 

3.5 可接入控制

charles可以通過Access control Settings來控制允許訪問列表。如果未允許本機器IP,訪問不會走Charles,當然也抓不了包。

 
未配置過時,列表為空。當手機第一次訪問時,charles會彈出是否允許彈框,點擊allow,即同意此手機連接。

此手機的ip地址也會出現在Access control Settings的列表中。

我一般配置為允許所有,在Access control Settings中Add,輸入0.0.0.0/0,添加即可。

3.5 Map Local

這個功能相當有用,可以把數據請求的response從本地文件獲得。
比如:我有一個系統升級功能,升級方式upgradeType有三種:強制/普通/靜默,然而,自己想要測試驗證三種場景,就得麻煩后台去修改數據。這時候,Map Local可以上場了。

  1. 保存遠端response:


     
    保存返回值
  2. 設置Map Local:


     
    添加
    選擇json文件
  3. 打到保存的json文件,修改返回值:

    修改

然后重新請求,就會走你修改后的本地文件數據了。再也不用頻繁麻煩后端同學了,自己就能模擬各種數據場景。

如何關閉?

charles工具欄 -> Tools -> Map Local,點擊進入

4. 一些常見問題

4.1 真機驗證應用時卡住?

作為蘋果開發,很多時候需要通過Xcode把自己做的小Demo運行到手機上,用的又是免費的個人證書,需要在手機上信任證書,及驗證應用。如果你設置了抓包,ssl是驗證不過的。

解決辦法:

ssl時,只抓指定的網址,不要設置全抓* 。charles工具欄 -> Proxy -> SSL Proxy Settings,只抓項目后台地址。

5. 總結

把上面步驟過了,就可以愉快的抓https了。總結一下:

  1. 證書:Mac/模擬器/iphone證書(不要忘記信任證書)。
  2. Proxy setting勾選HTTP與SOCKS。
  3. 同一局域網。
  4. 手機設置代理。
  5. Access control Settings同意接入
  6. SSL proxy添加星。

當然,charles功能不僅僅於此,非常強大,還有很多功能等待發現。如:斷點/攔截,返回修改后數據/模擬斷網/模擬網絡差。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM