Charles代理設置
設置的主界面如下:
動態端口
啟用動態端口選項來監聽動態端口,每次查詢啟動時選擇。這樣可以避免與計算機上可能運行的其他網絡服務的沖突,包括Charles的其他實例(如果是共享計算機)如果你開的端口很多,搞到你自己都記不清楚了,那么推薦你用這個;但是我都是寫好一個端口的,比如代理寫8888,別的就不會監聽這個端口了,而且為了手機方便連接,都是使用指定好的端口。
注意;如果你charles設置了8888的端口,別的服務就不能再使用這個端口號了,否則沖突會發生意外的錯誤;
透明的HTTP代理
透明代理使Charles能夠支持不支持HTTP代理服務器的客戶端,或者不知道他們正在使用HTTP代理服務器,例如TCP / IP連接由路由器或防火牆重定向到Charles。這里可以被手機連接;
手機連接的時候,http代理那里寫=選手動,並填寫此時charles的本機地址和上面設置的8888端口即可;
options 里 主要是設置 繞過代理
這里可以設置您的瀏覽器/操作系統遇到哪些域名的時候,使用默認而不用Charles;配置的列表使用空格或逗號分隔,並在Charles配置其代理設置時注入瀏覽器。 有關詳細信息,請參閱操作系統和瀏覽器特定選項卡。
后面系統代理和火狐瀏覽器的就不寫了,主要是一些開關和配置,因為也不用火狐,都默認就可以了;
SSL Proxying Srtting
這里最常用的設置就是第一個ssl proxying,這里記錄了需要捕獲哪些ssl的信息;
注意,如果你不在這里設置,雖然你安裝了ssl的charles證書,你依然無法正常捕獲;
通過SSL代理,您的瀏覽器或應用程序將收到由Charles簽名的證書,而不是來自遠程Web服務器的原始證書。這將在您的瀏覽器或應用程序中觸發警告,某些應用程序實際上可能會拒絕該連接。
您可以將瀏覽器或應用程序配置為接受Charles的證書;
具體請查看 http://www.charlesproxy.com/ssl 的說明,或者“幫助”菜單中的“SSL代理”菜單。
為在這里設置了通配符,表示為要捕獲記錄所有ssl協議的請求和響應;
具體請查看Charles的HTTPS抓包方法及原理
access control settings 訪問賬戶設置;
這里可以配置連接到charles時的一些配置;
這個訪問控制確定誰可以使用這個charles,
本機是永遠都可以訪問的,默認的訪問控制列表如果是空的;
意味着除了這台電腦以外,沒有任何設備可以使用charles。
如果你把下面的提示開始,未經授權的設備連接時候會提示你是否允許;
類似下面這種提示框
當你手機訪問的時候,電腦會提示的;
這里設置后的host,連接時候是無需確認的;
external proxy 外部代理設置
有時候您可能需要使用網絡上的代理服務器才能訪問Internet。在這種情況下,您需要為Charles配置外部代理。
您可以為每種代理類型配置身份驗證信息。 Charles支持基本身份驗證和NTLM身份驗證。對於NTLM身份驗證,您可以輸入“域名”選項。
如果您沒有配置身份驗證和外部代理請求認證,Charles會將驗證請求傳遞給瀏覽器,就像Charles本身正在請求身份驗證一樣。
排除列表
您可以輸入繞過外部代理的loacation列表。
該列表是空格分隔的,每個location都是一個主機或ip地址與可選端口匹配(例如hostname:port),並且支持通配符。
請注意:之前的Charles自動在排除location列表中進行了前綴匹配。
在Charles 3.5中更改了支持全局通配符的系統。
Web Inerface
Web界面可以讓您使用Web瀏覽器控制查詢,您可以訪問 http://control.charles ⬆️的Web界面,當查詢運行時,您可以啟用此功能並配置下面的訪問控制;
首先你必須要開啟web inter face,否則你訪問http://control.charles的時候就提示你沒有開啟;如下的提示;
Charles Web Interface
The Web Interface is disabled. You can enable it in the Web Interface Settings in the Proxy menu.
Charles代理設置常用步驟
點擊Proxy菜單中的代理設置:Proxy Settings
Charles抓包設置代理
如果想要抓包,第一件事情,就是把charles設置成為本機和服務端之間的”過濾器”;讓所有的網絡請求全部經過charles,這樣就可以捕獲並記錄到你請求的內容和返回數據了,原理請參照上面那張圖片;需要注意的是,如果你訪問的是web,可以把所有請求抓到;但如果你想抓某些應用(比如手機上的應用等),應用使用的某些資源,如果沒有向服務器發送請求,而是通過調用內部資源的方式進行展現,那么此時charles是抓不到的;驗證這個的方式很簡單,就是把網絡斷掉后,如果還可以繼續展現,就是屬於調用內部資源的,這種時候就不要想着通過抓包工具來捕獲資源了,他都沒有像服務器發起請求,手機點爛也抓不到的;
啟動 Charles 后,第一次 Charles 會詢問你是否把Charles設置為系統的代理,如果此時你忽略了這個詢問敞口,你可以在后期設置的;將 Charles 設置成系統代理:選擇菜單中的 “Proxy” -> “Mac OS X Proxy/windows proxy” 來將 Charles 設置成系統代理,參考如下,如果Mac下有管理密碼,需要輸入密碼后方可進行;
將charles設置為chrome的代理
需要注意的是,Chrome 和 Firefox 瀏覽器並不一定使用的就是本機,可能是一些代理工具,而 Charles 是通過將自己設置成代理服務器來完成資源記錄的,所以如果你的charles無法截取 Chrome 和 Firefox 瀏覽器的網絡請求內容,需要在瀏覽器里做下修改。在 Chrome 中設置成使用系統的代理服務器設置即可,或者直接將代理服務器設置成 127.0.0.1:8888 也可達到相同效果。
charles手機抓包設置和安裝證書
charles經常會進行手機上的網頁抓包,比如去copy別人網站圖片或腳本的時候
手機抓包的原理,和PC類似,手機依靠charles與服務端進行對話;
目標:把手機的網絡委托給charles進行代理;
手機抓包設置,需要進行3步;
第一步,在charles里設置允許手機聯網的權限;你需要把charles設置為允許的狀態並且設置允許的端口號,這樣手機端才能正常的接入;
第二步,把手機按照charles的IP和端口進行配置;
第三步,手機配對成功后,charles還會彈窗是否允許;(charles雖然開放了端口,但並不知道是那一台手機會配入,此窗口起到提示和安全防護的作用;)
上面的三步,有點類似HTTP的握手原理,雙方都保證正常通信后,就可以進行抓包;
第一步:設置charles為允許狀態,並設置好接入端口:
在Charles的菜單欄上選擇“Proxy”->“Proxy Settings”,填入代理端口8888(注意,這個端口不一定填寫8888,也可以寫別的端口,但是需要記住這個段擴,因為這里設置的允許接入的端口,手機端配置的時候需要用到),並且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的設置。如下圖;
需要找到charles的本機IP;
點擊HTLP -> local IP Address 可以看到當前的本機IP地址;
當然,你也可以在終端打開查看,比如window,cmd下;輸入ipconfig可以查看本機的IP
此時我們可以看到,charles允許手機接入的IP和端口是 192.168.0.103:8888
此時如果你手工在瀏覽器輸入 這個HOST會發現charles會提示一個窗口問你是否允許接入;
第二部:把手機按照charles的IP和端口進行配置
手機鏈接wifi,wifi的HTTP代理選擇手動那項(安卓類似)
在iPhone的 “設置”->“無線局域網“中,可以看到當前連接的wifi名,通過點擊右邊的詳情鍵,可以看到當前連接上的wifi的詳細信息,包括IP地址,子網掩碼等信息。在其最底部有“HTTP代理”一項,我們將其切換成手動,然后填上Charles運行所在的電腦的IP,以及端口號8888
第三步,手機配對成功后,charles彈窗詢問是否允許
設置好之后,我們打開iPhone上的任意需要網絡通訊的程序,就可以看到Charles彈出iPhone請求連接的確認菜單
如上圖的彈窗,點擊允許即可;此時已經配對成功,開始愉快的抓包吧;
比如此時,訪問www.tmooc.cn
就可以電腦上就抓到訪問的資源了;
因為本站用的是SSL,所以如果您的charles沒有配置過,是抓取不到HTTPS這種加密協議的內容的;
如果需要抓取HTTPS網站的資源,請查看Charles的HTTPS抓包方法及原理
注意:需要明白一個可能存在的弊端,如果你把手機的上網相關事情委托給了charles,那么當charles出錯或者沒有開啟的時候,此時手機必定沒有辦法正常上網;這個一定要了解,因為很多人把手機的IP委托給charles進行代理后,
第二天早晨上本的時候,手機wifi會默認鏈接你常用的高清度wifi;而此時的wifi的設置里面可能已經委托給charles了,但是此時電腦剛沒有開charles或者重啟后ip變動等;造成charles無法正常使用;由此而導致了無法上網的問題;
注意charles此種捕獲方式,只能捕獲發出請求的資源,如果是APP里,內部的代碼和資源,因為沒有向服務器發情請求,所以這是抓不到的;
判斷是不是調用內部資源,你可以把手機的網絡給斷了,如果此時還可以正常的顯示,說明該資源是寫在APP內部的,通過代理的方式是抓不到的
Charles的HTTPS抓包方法及原理,下載安裝ssl/https證書
本文的Charles,適應windows/MAC/IOS/Android,避免抓包HTTPS失敗和亂碼;
用的版本是V4.1.2,其它版本原理類似;
charles如果不配置SSL通用證書;
會導致HPPTS協議的域名抓取失敗/亂碼的現象;
現在SSL越來越多,很多博客都上了SSL,支付相關的行業更是基礎配置;
charles配置SSL證書,算起來很簡單,操作簡潔;
首先分析我們需要怎么做?
第一步:電腦端安裝 Charles 的 CA 證書(必須
charles需要下載安裝ssl/https證書,因為charles是作為中間的過濾器使用的
這樣你就可以訪問PC端的https資源了,windows/MAC原理一樣;
第二步:電腦上charles的SSL抓取設置(必須)
charles並不是默認抓取ssl的,所以即使你安裝完證書之后,Charles 默認也並不截取 Https的信息,你需要在SSL proxy里設置需要抓的域名;
當然如果你想抓取手機端的HTTPS相關資源,還需要下面的第三步;
(還不會手機抓包普通HTTP的,請點擊charles手機抓包設置)
第三步:手機安裝SSL證書;
無論IOS/Android,都需要安裝SSL證書,原理是手機的SSL證書與電腦上charles SSL證書對接;
具體的操作方法*****
第一步:電腦安裝SSL證書
選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,如果設置了安全防護,會ranging輸入系統的帳號密碼。
會讓你開始安裝charles的證書操作;
默認下一步即可;
第二步,配置SSL的抓取域名;
你可以單獨配置,必須看到某個想要抓取的域名,右鍵點擊“SSL proxying :Enableed”那么當前你設置后的域名,再次訪問就可以抓到了;設置如下圖
可以看到我上面的配置,那個“SSL proxying :Enableed”配置 默認就是灰色的,這是因為我做了通用設置的原因;我是設置為所有的HTTPS協議全部允許捕獲;
我的設置如下;
首先找到proxy – SSL Proxying Settings;
然后選中啟用SSL代理(Enable SSL Proxying),因為charles的location配置都是支持通配符的,所以在HOST里設置一個”*”就可以了,port不寫;
如果你需要配置某個指定域名,也是在這里填寫的;
配制特定域名的時候,一般port為443(SSL常規為443);
這樣,你就可以愉快的抓取到HTTPS的內容了;
第三步:手機安裝SSL證書(如果你需要抓取手機訪問的HTTPS網站,需要做此設置,但如果你不需要手機抓取HTTPS,就沒有必要安裝了)
和上面類似,也是HTLP下面的 SSL Proxying,選擇”Install Charles Root Certificate on a Mobile Device or remote Browser” (在移動設備或遠程瀏覽器上安裝SSL證書)
然后會看到一個彈窗,提示你該怎么操作
configure your device to use charles as its HTTP proxy on 192.168.10.108.8888,then browse to chls.pro/ssl to download and install the certificate
大概的意思是讓你把手機上的wifi信息設置了 HTTP代理,內容是192.168.10.108.8888;然后用瀏覽器瀏覽chls.pro/ssl就可以下載並安裝證書了;
charles的手機上抓取普通HTTP的設置,請參考“charles手機抓包設置”這里只是抓取HTTPS的;
上面的 192.168.10.108.8888 這是我電腦的IP和設置和設置的端口,具體要以你實際的為准;
當你完成手機的wifi委托為charles作為代理后;
打開手機上的瀏覽器訪問chls.pro/ssl;然后會跳到一個安裝描述文件的地方;
直接安裝就可以了;
我的已經安裝好了,就不再進行演示了
好了,現在去看看吧,已經可以正常捕獲到HTTPS的了;
上一章訪問我自己博客的https抓包記錄
MacOS系統客戶端代理設置
1、左上方“蘋果”-> 系統偏好設置 -> 選擇“網絡”
2、點擊“高級” -> 選擇“代理”選項卡
3、勾選“Web代理(HTTP)” -> 設置Web代理服務器IP地址和端口號
4、勾選“安全Web代理(HTTP)” -> 設置Web代理服務器IP地址和端口號
應用場合:
當MacOS客戶端與運行Charles的主機是同一台計算機時,可以通過快捷代理方式進行設置
操作步驟:
打開Charles,選擇“Proxy”菜單中的“macOS Proxy”選項
IOS系統客戶端代理設置
1、在IOS手機中選擇“設置”->“無線局域網”
2、點擊已連接的無線網絡名稱
3、在HTTP代理的配置代理中選擇“手動”
4、輸入服務器IP地址及端口,點擊“存儲”
Android系統客戶端代理設置
1、在Android手機中選擇“設置”->“WLAN”
2、長按已連接的無線網絡名稱,點擊“修改網絡”
3、勾選“顯示高級選項”
4、在代理選項中選擇“手動”
5、輸入代理服務器IP地址及端口,點擊“存儲”