本文的Charles,適應windows/MAC/IOS/Android,避免抓包HTTPS失敗和亂碼;
charles如果不配置SSL通用證書;
會導致HPPTS協議的域名抓取失敗/亂碼的現象;
首先分析我們需要怎么做?
第一步:電腦端安裝 Charles 的 CA 證書(必須)
charles需要下載安裝ssl/https證書,因為charles是作為中間的過濾器使用的,具體原理請查看
這樣你就可以訪問PC端的https資源了,windows/MAC原理一樣;
第二步:電腦上charles的SSL抓取設置(必須)
charles並不是默認抓取ssl的,所以即使你安裝完證書之后,Charles 默認也並不截取 Https的信息,你需要在SSL proxy里設置需要抓的域名;
當然如果你想抓取手機端的HTTPS相關資源,還需要下面的第三步;
第三步:手機安裝SSL證書;
無論IOS/Android,都需要安裝SSL證書,原理是手機的SSL證書與電腦上charles SSL證書對接;
*****************************具體的操作方法**********************************
第一步:電腦安裝SSL證書
選擇 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”,如果設置了安全防護,會ranging輸入系統的帳號密碼。
會讓你開始安裝charles的證書操作;一路下一步即可;
第二步,配置SSL的抓取域名;
你可以單獨配置,必須看到某個想要抓取的域名,點擊導航欄Proxy按鈕,點擊“SSL proxying ,勾選Enable SLL Proxying,設置想要抓包的域名並進行勾選,再次訪問就可以抓到了;設置如下圖
第三部:可以使用通配設置,設置為所有的HTTPS協議全部允許捕獲;
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.1.117:8888,then browse to chls.pro/ssl to download and install the certificate
大概的意思是讓你把手機上的wifi信息設置了 HTTP代理,內容是192.168.1.117:8888;然后用瀏覽器瀏覽chls.pro/ssl就可以下載並安裝證書了;
當你完成手機的wifi委托為charles作為代理后;
打開手機上的瀏覽器訪問chls.pro/ssl;然后會跳到一個安裝描述文件的地方;
直接安裝就可以了;
我的已經安裝好了,就不再進行演示了
文章參考:https://zhubangbang.com/charles-https-packet-capture-method-and-principle.html