Charlesプロキシツールを使用して、AndroidデバイスからのHttps呼び出しをテストしたい。アプリをデバッグするための生の要求/応答の内容を確認する必要があります。 [プロキシ設定]-> [SSL]タブの下にホストとポートを追加して、Charlesを構成しました。アプリを実行すると、すべてのSSL呼び出しがチャールズからすぐに消えるようです。この問題を修正する方法はありますか? Charlesのドキュメントには、Androidデバイスに関する情報がないようです。
私は問題を考え出した。その理由は、Charles 3.7にはAndroidデバイスのバグがいくつかあるためです。 Charles 3.8ベータ版に更新しましたが、うまく機能しているようです。
参照: charlesプロキシをAndroid 7 nougatで動作させる方法
コンピューターから、Charlesを実行します:
プロキシ設定を開きます:[プロキシ]-> [プロキシ設定]、[プロキシ]タブ、[透過的なHTTPプロキシを有効にする]をオンにし、中心にある[ポート]を記憶します。
SSLプロキシ設定:プロキシ-> SSLプロキシ設定、SSLプロキシタブ、「SSLプロキシを有効にする」にチェックマークを付け、。をロケーションに追加:
アクセス制御設定を開きます:プロキシ->アクセス制御設定。ローカルサブネットを追加して、ローカルネットワーク上のマシンが別のマシン/モバイルからプロキシを使用することを許可します。
Android Phone:
モバイルの設定:[設定]-> [無線とネットワーク]-> [WiFi]->ネットワークに接続または変更し、コンピューターのIPアドレスとポート(8888)を入力します:
Charles SSL証明書を取得します。モバイルブラウザから次のURLにアクセスしてください。 http://charlesproxy.com/getssl
「証明書に名前を付ける」に必要なものを入力します
セキュリティ警告を受け入れて、証明書をインストールします。正常にインストールすると、おそらくそのようなsthが表示されます。お使いの携帯電話で、[設定]-> [セキュリティ]-> [信頼できる資格情報]:
できた.
編集-この回答は、Charlesの以前のバージョンに対するものでした。 v3.10.xの適切な手順については、以下の@ semicircle21の回答を参照してください-このアプローチよりもはるかに簡単です... :-)
ここで価値があるのは、このための手順ごとの指示です。 iOSでも同様に適用されるはずです。
これで、CharlesでSSLファイルを見ることができるはずです。値をインターセプトして変更したい場合は、「Map Local」ツールを使用できます。
@bkurziusの回答に感謝し、このアップデートはCharles 3.10+用です。 (理由は ここ )
Install Charles Root Certificate on a Mobile Device or Remote Browser...
]に移動し、指示に従ってください。 (Androidのブラウザーを使用して、証明書をダウンロードしてインストールします。)こちらをご覧ください:
Charles.crt証明書をデバイスにインストールする必要があります。
上位の回答は完璧に機能しています(少し古いですがまだ機能しています)が、Android N以降、diff信頼SSL証明書を持つようにアプリを設定できます(リリース用、デバッグのみなど)、Charles SSL Proxy証明書を含む(Charles証明書をダウンロードし、.pemファイルをrawフォルダーに配置した場合)。詳細はこちらをご覧ください: https://developer.Android.com/training/articles/security-config.html
また、Charlesの公式ドキュメントは、これをセットアップするのに役立ちます。 https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
これが、すべてのAndroidデバイスではなく、アプリプロジェクト内でCharlesをセットアップするのに役立つことを願っています。
新しいエミュレータでは、次を使用してコマンドラインから起動すると役立つ場合があります。
emulator -netdelay none -netspeed full -avd <emulator_name> -http-proxy http://<ip-address>:8888
上記の@ User9527のアドバイスに従って、セットアップの残りの部分にも必ず従ってください。
私にとって問題は、チャールズがプロキシ設定でルーティングするように指示していたIPアドレスが間違っていたことです。解決するために、私は端末でifconfig
に行き、現在のアクティブな接続のポート8888
で異なるIPアドレス(inet
の横にリストされている)を試しました。