HTTPS
アプリケーションからリモート サーバーへのトラフィックを監視したいと考えています。私はこの指示HTTP
に従おうとしていますが、 (なしs
)では機能しますが、では機能しませんHTTPS
。
なにが問題ですか?アプリケーションで使用するカスタム コードを作成する必要がありますhttps-proxy
か?
これを行う最も簡単な方法は、CharlesProxyを使用して、デバイスまたはエミュレーターのトラフィックをプロキシすることです。必要な唯一の追加手順は、デバイス/エミュレーターに CharlesProxy SSL 証明書をインストールすることです。これは非常に簡単です。
Charles Proxy から証明書をダウンロードし (ヘルプ メニューにあります)、デバイスに配置してから、デバイスのセキュリティ設定を介してインストールします。
次に、手動プロキシを使用するようにデバイスまたはエミュレータのネットワーク接続を構成し、Charles Proxy のアドレスとポートに設定します。SSL プロキシを有効にすると、SSL 接続が Charles を介してエンドツーエンドで安全にルーティングされ、Charles はリクエストとレスポンスの内容を平文で表示できるようになります。
私はスニッフィングにWireSharkを使用しています。これにより、生データを監視およびフィルタリングできます。しかし、httpsとすべてのトランザクションを暗号化して使用しているため、役に立たないと思います。デバッグのためにhttpsからhttpに切り替えて、後ですべてが正常に機能するようになったら、プロトコルをhttpsに戻すことができます。
トラフィックがまったく見えないということですか、それとも暗号化されているということですか? これは Web アプリケーションですか、それともネイティブ アプリケーションですか? どのバージョンの Android を使用していますか? 電話またはエミュレーター?
通常、プロキシを適切に設定すると、トラフィックは取得されますが、暗号化されているため、読み取ることはできません。Fiddler で実際のコンテンツを表示するには、デバイスが Fiddler のルート証明書を信頼する必要があります (その場で偽の証明書を作成するために使用されます)。これを参照してください:
http://www.fiddler2.com/fiddler/help/httpsdecryption.asp
残念ながら、ルート化して証明書ストアを置き換える以外に、Androidデバイスにルート証明書を追加する方法が見つかりませんでした(このように)