1. 程式人生 > >Charlse抓包獲取Android應用的https請求資料

Charlse抓包獲取Android應用的https請求資料

1、選單欄依次選擇help->SSL Proxying -> install charlse root certification開啟電腦安裝證書介面(此處以windows為例)

依次點選安裝證書 跳轉到證書匯入嚮導,儲存位置選擇當前使用者和本地電腦都可以,然後點下一步跳轉到下圖介面

按上圖顯示選擇後,點選下一步,再點選確定,然後一路確定完成windows端CA證書的安裝。

2、選單欄依次選擇help->SSL Proxying -> save charlse root certification... 彈出儲存路徑選擇彈窗,記得一定要在檔名一欄中為將要儲存的證書命名,如下圖:

接下來就是將檔案傳到雲盤上,再通過系統自帶的瀏覽器下載下來(可以通過別的方式,但是要能在你的手機上找到ca證書下載下來後的儲存位置就行)

3、在Android手機上一次選擇設定 -> 安全和解鎖 -> 憑證儲存 -> 從儲存裝置安裝 ,開啟文件系統,在裡面找到系統瀏覽器資料夾Browser,在它下面找到要安裝的證書,點選完成手機端證書的安裝。

4、開啟Charles,在選單欄依次選擇Proxy -> SSL Proxy Settings, 開啟SSL Proxy Settings對話方塊,然後如下圖加入要抓包的host地址和埠號,然後點選ok完成抓包地址的設定

5、最後一步,也是網上好多帖子都忽視了的一步,就是需要在app中加入以下程式碼(注:只有app在debuggale時才能使用)

Add a file res/xml/network_security_config.xml to your app:

<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>

Then add a reference to this file in your app's manifest, as follows:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config" ... >
        ...
    </application>
</manifest>