1. 程式人生 > >Charles: 抓取Https包

Charles: 抓取Https包

做前端開發的小夥伴兒們,一定聽過一個牛叉得不行的抓包工具,叫做Charles,利用這個工具,我們可以很方便的將線上的程式碼代理到本地,進行聯調,也可以通過設定proxy連結同一網段下的移動裝置進行聯調,可以說是前端開發中的一大利器。

然鵝。。。在使用這個利器的時候,發現了一個很麻(dan)煩(teng)的問題,就是Charles無法抓取Https的包,這TM就很尷尬了。

為了解決這個尷尬的問題,我去網上搜了一把相關資料,發現Charles可以支援https的抓包,但是前提是需要安裝證書,而且對Charles的版本有限制,需要Charles的版本在3.11.2以上。根據這些已知條件,我去嘗試配置了一波,並且親測可用,現將配置過程分享給大家:

第一步:配置 Charles 證書
1.開啟工具欄,help>ssl proxying>install Charles Root Certificate>,點選安裝證書(之後會彈出證書管理介面,如若沒有開啟,請自行開啟);
2.MAC系統下,對Charles的證書預設是不信任的,雙擊不被信任的證書,裡面有個信任的下拉選單,選擇永久信任,儲存即可

第二步: Charles配置
這個時候還是無法抓取Https的包,開啟 Charles ,進行設定:點選proxy>ssl proxying settings…>Enable SSL Proxying,點選新增,Host 表示你要抓取的 ip 地址或是連結 (port埠根據需要填寫),設定完成後就可以抓取資料了。

關於移動端Https的抓包問題:
要想抓取移動端頁面的包,需要以下幾個條件:
1.手機要和Charles所在的裝置處於同一子網;
2.手機上需要安裝Charles的證書。證書的安裝很簡單,在手機連上與Charles同一子網後,在手機的無線連線內設定手動代理,代理伺服器的主機名是Charles所在裝置的IP地址,埠預設為8888(埠可以在Charles的Proxy>proxy-settings中進行設定)。之後在手機的瀏覽器位址列輸入charlesproxy.com/getssl 會彈出證書,給證書命名後,點選安裝即可。完成安裝後,即可抓取手機的Https包~