最近使用了 Charles 抓包工具,期間遇到了一些問題,想到后面的小伙伴也可能會遇到,所以分享給大家。
iPhone抓包
1.打開Charles,然后在菜單欄選擇:Proxy?->?SSL Proxying Settings?->?SSL Proxying?->?Add
Host:為要抓取的域名地址,* 表示抓取所有地址
Port:端口,固定為443
2.查看Mac IP地址:系統偏好?-> 網絡
3.在手機上設置電腦為手機的代理:設置?-> 無線局域網?-> 選擇對應的WIFI,進入頁面后拉到底部 -> 選擇“HTTP代理”?-> 手動 -> 填入電腦IP地址和8888端口(這里的8888端口是可以自己設置的,在菜單欄選擇:Proxy?-> Proxy Settings... 可以設置)
4.安裝證書:在手機瀏覽器中打開:http://charlesproxy.com/getssl。證書安裝完之后需要去信任證書:設置?->?通用?->?關于本機?->?證書信任設置?-> 打開信任
5.然后手機打開APP訪問頁面,Charles就可以抓到HTTPS對應的請求接口了
Mac抓包
1.打開Charles,然后在菜單欄選擇:Proxy?->?SSL Proxying Settings?->?SSL Proxying?->?Add
2.設置Mac代理,在菜單欄選擇:Proxy?-> Mac OS X Proxy 勾選
3.安裝證書,在菜單欄選擇Help?->?SSL Proxying?->?Install Charles Root Certificate。此時會打開鑰匙串,然后雙擊證書,選擇始終信任證書
4.然后瀏覽器或者Postman訪問服務器接口,Charles里面就可以抓到HTTPS對應的接口了
常見問題一:Mac抓包
將 Charles 設置成Mac系統代理后,Charles 界面中,沒有出現我們再Mac上預期的抓包結果。這個是由于你本地可能有其他網絡代理工具(如常見的一些 VPN 代理工具)。解決辦法:將你的網絡代理工具關掉就可以了。
常見問題二:iPhone抓包
在手機瀏覽器中打開:http://charlesproxy.com/getssl,卻沒有出現證書安裝界面。首先你要在手機上設置好 Charles 代理,然后再在手機瀏覽器上打開這個網址,就好了。這個順序不能反了。