准備工作
1. win10上安裝Charles -->下載地址 (注:官方版本如果不付費的每30分鍾就會斷開)
2. 打開Charles進行設置
- PC端
- Proxy-> Windows Proxy 這個去掉勾選,這樣就不會整個電腦都走代理了
- Proxy-> Proxy Settings -> HTTP Proxy ->Port 設置代理的端口號如8888
- Proxy-> Proxy Settings -> SSL Proxying -> Enable SSL Proxying 這個要勾選,使得Charles攔截和代理SSL請求
- Proxy-> SSL Proxying Settings -> Include -> Location 在這個框下點擊ADD,添加讓Charles監聽的SSL站點,使用*號作為通配符匹配任意站點。
- 點擊ok
- 模擬器端(Android Studios的模擬器 Android 6 版本)
- 點擊右側的 "...",進入設置頁面
- 點擊左側邊欄的Settings
- 點擊右側界面的Proxy標簽,進入代理設置頁面
- 點中Manual proxy configuration
- Host name填入電腦ip地址,Port number填入在Charles設置的端口號,如8888
- 點擊APPLY
- 打開模擬器中的瀏覽器輸入cls.pro/ssl,並按照提示下載證書,之后會在電腦Charles端彈出一個提示,點擊allow就好了
- 真機可能需要在 設置->安全->從SD卡安裝證書 選擇下載的證書手動安裝,之后在 信任的憑據->用戶 下可以看到安裝的證書
- 點擊右側的 "...",進入設置頁面
遇到的坑
- 提示SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations
解決方案:
把目的ip添加到Proxy-> SSL Proxying Settings -> Include -> Location下(這一點很奇怪,這是網上查的方法,我設置之后也少了很多紅色unknown,但是*號應該是包含所有host地址的,不知道為什么還需要手動添加host) - 手機端設備設置代理之后,訪問cls.pro/ssl失敗,提示超時,手機無法上網(已確認電腦與手機在同一網段內)
解決方案:
關閉Windows防火牆。控制面板->更新和安全->windows安全中心->防火牆和網絡保護->把網絡的防火牆給關掉(可能需要重啟,之前charles一直沒有彈出allow的提示框,重啟之后才彈出) - 出現藍色的unknown
解決方案:
設置DNS - 提示You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Help...
解決方案:
重新下載安裝證書