Charles可以正常抓取http數據包,但是如果沒有經過進一步設置的話,無法正常抓取https的數據包,通常會出現亂碼。舉個例子,如果沒有做更多設置,Charles抓取https://www.baidu.com的結果如下:
上圖顯示都是亂碼,為了正常可以抓取到數據,我們需要通過以下配置:
抓包准備
安裝Charles: 演示版本是4.0.2
手機設備:iphone
電腦系統:MAC
電腦下載證書
在Charles菜單欄中選擇Help -> SSL-Proxying -> Install Charles Root Certificate:
將證書安裝到本地,注意這里需要雙擊證書設置證書被始終信任,不然默認是未信任的:
手機端安裝證書
在Charles菜單欄中選擇Help -> SSL-Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser:
這時候,Chrome會彈出一個窗口,如下:
提示內容為,在設備中先設置好代理,其中ip為紅色橫條顯示的區域,端口為8888,然后通過設備的默認瀏覽器(這里是safari)輸入chls.pro/ssl訪問,即可安裝證書。輸入chls.pro/ssl回車后便會提示安裝證書:
配置需要訪問的https的路徑
安裝完證書后,還需在Charles要配置下所需要抓包的https路徑,在Charles菜單欄中選擇Proxy -> SSL Proxy Settings,然后勾選Enable SSL Proxying,然后添加一個路徑,其中Host是需要訪問路徑的域名,端口默認為443:
到此,配置結束。
接下來,我們就可以正常抓取https:www.baidu.com的數據包了,如下:
注意:這里使用Charles版本是4.0.2,如果是比其更低的版本,可能不能設置成功,所以最好安裝4.0.2以上的版本,再來依照此文進行配置,如果還有其它問題,請留言。