Charles を使用して Android スマートフォンで HTTPS インターフェイスをキャプチャする方法

Charles のインストールと使用についてはここでは繰り返しません。Charlesツールは以前に紹介されています。

この記事では、Android スマートフォンでパケット キャプチャ環境を構成する方法に焦点を当てます。

1. Charles 構成を取得する

[ヘルプ] -> [SSL プロキシ] -> [モバイル デバイスまたはリモート ブラウザにチャールズ ルート証明書をインストール] に移動して、構成を表示します。

2. 携帯電話とコンピュータを同じ LAN に接続します

3. モバイルネットワーク用の手動プロキシを設定する

ip パラメータと port パラメータは最初のステップで取得されています

4. モバイルブラウザを使用して証明書をダウンロードしてインストールします。

ブラウザで chls.pro/ssl に移動して証明書をダウンロードし、.pem 形式の証明書をダウンロードします。デバイスが認識できない場合は、サフィックス名を手動で .crt に変更し、ブラウザのダウンロード管理に移動してインストールを選択する必要があります。

インストール後、[設定] -> [セキュリティ] -> [信頼された資格情報] に移動して、新しくインストールされた証明書を確認します。

5. パケットをキャプチャする

Charles で HTTPS を右クリックし、「SSL プロキシを有効にする」を選択してプロキシを開始します。次に、構造をクリアし、キャプチャされたデータを表示するためにインターフェイスを再度要求します。

この時点で、すべての HTTPS をキャプチャできるわけではないことがわかります。Android 7.0 以降、ユーザーがシステムに追加した CA 証明書はデフォルトでは信頼されません。

解決:

逆のことをしたくない場合を除き、ここでは詳細には触れません。

6. 独自のプロジェクト用のパッケージをキャプチャする

私たち自身の Android プロジェクトでは、HTTPS パケットをキャプチャするために、完全なネットワーク構成でそれを設定できます。

res -> xml に移動して、次の構成で network-security-config.xml ファイルを作成します。

<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

次に、マニフェスト ファイルに移動して、アプリケーションの networkSecurityConfig を構成します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
 
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application android:networkSecurityConfig="@xml/network_security_config" >
 
    </application>
 
</manifest>

注: 開発中に、cleartextTrafficPermitted="true" を設定すると、クリア テキスト トラフィックが許可され、パケットのキャプチャが容易になります。ただし、アプリケーションを公開する場合、アプリケーションのセキュリティを向上させるために、通常は平文トラフィックを無効にすることをお勧めします。
 

おすすめ

転載: blog.csdn.net/u012881779/article/details/134550437