中間者証明書のインストール¶
この章では、Androidシステムにシステムレベルのルート証明書をインストールする方法を説明します。全Androidバージョンに対応しています。本章のインターフェースとプロキシ設定インターフェースを組み合わせて中間者パケットキャプチャを実現できます。また、あらかじめ用意された startmitm.py を使用することも可能です。ここでは、この機能の使い方をご紹介します。
準備¶
Fiddlerまたはmitmproxyから提供される証明書をあらかじめ用意してください。mitmproxyの場合、使用する証明書は mitmproxy-ca-cert.pem です。Fiddlerの場合はcrt形式の可能性がありますが、Fiddlerからそのファイルをエクスポートし、そのファイルパスをそのまま引数として指定してください。ファイル名や形式の変換を気にする必要はありません。不要な時間を節約するため、ここでは mitmproxy の使用を推奨します。Charles などを使用する場合、設定項目が複雑で、HTTPS中間者を正しく構成するためにさまざまなプロキシタイプを理解する必要があるため、一度で設定が完了する保証はありません。もしどうしても使用する必要がある場合は、CharlesのSOCKS5をプロキシプロトコルとして使用することをお勧めします。
ルート証明書のインストール¶
中間者システムルート証明書をインストールします。cert_pathは証明書ファイルのパスです。一度インストールすると永続的に有効で、再起動後も再インストールは不要です。
d.install_ca_certificate(cert_path)
ヒント
証明書のインストール/アンインストールインターフェースは汎用的です。任意のアプリが要求する証明書のインストールに使用でき、Fiddler/Charlesが提供する証明書もインストールできます。必要なのはファイルパスを指定するだけです。
ルート証明書のアンインストール¶
デバイスにインストールされたカスタムルート証明書を削除します。頻繁なインストールとアンインストールは推奨しません。
d.uninstall_ca_certificate(cert_path)
mitmproxy中間者システム証明書をインストールするための完全なコードは以下の通りです:
import os
# mitmproxy-ca-cert.pem ファイルのパスを結合
HOME = os.path.expanduser("~")
cert_path = os.path.join(HOME, ".mitmproxy", "mitmproxy-ca-cert.pem")
# mitmproxy を例に、以下のコードで中間者証明書をインストールします
d.install_ca_certificate(cert_path)
# 以下のコードで証明書をアンインストールします
d.uninstall_ca_certificate(cert_path)