2017-07-10 4 views
3

Android 7.1.2を実行している携帯電話をプロキシしようとしています。 CharlesProxy 4.1.4を使用すると、これはiOSデバイスで簡単に可能です。しかし、Androidではアプリの機能が異なるため、どのように知りたいのですか?Android NougatでのCharlesProxy SSLハンドシェイクエラー

チャールズに接続するようにデバイスを設定した後、IPとポートを入力してchls.pro/sslに移動してCA証明書を取得します。クロムでも、証明書は無事にダウンロードされ、インストールされました。私はチャールズへのコールを見ることができますが、私はコールの内容を見ることができません。代わりに、SSLHandshake: Received fatal alert: certificate_unknownという<unknown>と記載されています。

この証明書を実際に信頼できる別の方法はありますか?または、AndroidでSSLを正常に許可する別の方法がありますか?繰り返しになりますが、すべての設定がiOSデバイスで正常に機能するため、そのOSの例は必要ありません。 AndroidのNのよう

おかげ

+0

あなたのアプリがSSLで通信する方法を示す[mcve]を提供してください。 – CommonsWare

+0

人々はちょうどそれに穴を開けるために新しい質問を読んでいますか?ここで工場を走っているようだ...私はどんなコードでも働いていない。私は、私の会社が働いているが公開されているアクセス可能なアプリのための呼び出しを見ようとしていますが、コントロールはありません。 – tbw875

+0

"私はどんなコードでも作業していません" - あなたの質問はトピック外です。スタックオーバーフローはプログラミングに関する質問のためです。 – CommonsWare

答えて

1

、あなたはそれがチャールズ・SSLプロキシによって生成されたSSL証明書を信頼持つために、あなたのアプリに設定を追加する必要があります。これは、あなたがコントロールするアプリでのみSSLプロキシを使用できることを意味します。

チャールズを信頼するようにアプリを設定するには、アプリにネットワークセキュリティコンフィグレーションファイルを追加する必要があります。このファイルはシステムのデフォルトを無効にすることができ、アプリがユーザーがインストールしたCA証明書(チャールズルート証明書など)を信頼できるようにします。これは、アプリケーションのデバッグビルドにのみ適用されるため、本番ビルドではデフォルトの信頼プロファイルが使用されるように指定できます。

あなたのアプリへのファイルのres/XML/network_security_config.xmlを追加します。

<network-security-config> 
<debug-overrides> 
    <trust-anchors> 
     <!-- Trust user added CAs while debuggable only --> 
     <certificates src="user" /> 
    </trust-anchors> 
</debug-overrides> 

次のように続いて、あなたのアプリのマニフェストには、このファイルへの参照を追加します。

<?xml version="1.0" encoding="utf-8"?> 

...

参照:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

関連する問題