簡體   English   中英

無法使用 Android 在 Charles Proxy 中查看 HTTPS 請求

[英]Unable to view HTTPS requests in Charles Proxy with Android

我正在嘗試在 Google Playstore 上調試一個應用程序,以便我可以看到它發出的請求。 我已經在我的計算機上設置了Charles Proxy來幫助我這樣做,但是我在查看使用 https 發送的請求時遇到了問題。 我的步驟如下。

我的電腦:
Manjaro Linux

我的手機:
谷歌像素 4a
Android 11
未扎根

我的設置:
使用查爾斯 v4.6.1
代理設置
SSL 代理設置
我的訪問控制設置包含我手機的 IP。

我的手機設置:
代理設置
證書

以下是我允許應用通過 charles 使用 SSL 的步驟:

  1. 從 Google Playstore 下載應用程序。
  2. 找到apk並將其傳輸到我的PC,然后通過Google Playstore卸載該應用程序。
  3. 使用 XDA 論壇的 Apktool 反編譯 apk。
  4. 根據thisthis ,我需要在網絡安全 xml 內的<network-security-config>內添加以下行。
<debug-overrides>
    <trust-anchors>
        <certificates src="user"/>
    </trust-anchors>
</debug-overrides>
  1. AndroidManifest.xml 已經遵循了所需的更改,因此我不在那里進行任何更改。
  2. 我將反編譯的內容編譯成一個apk。
  3. 我使用 Uber Apk Signer 對構建的 apk 進行簽名。
  4. 我將構建和簽名的 apk 傳輸到我的手機,然后安裝它。

通過此列表,我在任何步驟都沒有收到任何錯誤。

這是我在 Charles 中的視圖的屏幕截圖

提前謝謝您,如果您需要更多詳細信息,請告訴我。

您的網絡配置在<debug-overrides>中,僅適用於調試版本。 您是在調試模式下構建應用程序,還是在生產環境中構建應用程序? 如果您不在調試模式下構建,則該配置將不適用。

您可能想改用<base-config> ,它適用於所有構建,而不僅僅是調試構建。 這里有一個完整的例子: https://httptoolkit.tech/docs/guides/android/#if-you-dont-have-a-custom-network-security-config

如果這不起作用,那么很可能在應用程序代碼本身中存在一些證書固定,與網絡安全設置無關。 要解決這個問題,您需要手動編輯代碼本身。 您還可以嘗試使用https://github.com/shroudedcode/apk-mitm ,它有一系列自動補丁可以為您禁用許多常見的手動固定實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM