3

AndroidデバイスでapacheDefaultHttpClientを使用してローカルHTTPSサーバーに接続しようとしています。

 DefaultHttpClient httpclient = new DefaultHttpClient();
 HttpPost httppost = new HttpPost("http://192.168.1.121:4113/services");
 ... header and content filling in ...
 HttpResponse response = httpclient.execute(httppost);

.executeを実行すると、「javax.net.ssl SSLException:信頼されていないサーバー証明書」というエラーが発生します。Androidキーチェーンに含まれているかどうかに関係なく、すべての証明書が機能することを許可したいだけです。

私はこの問題の回避策を調査して理解するために約40時間を費やしました。私はこれを行う方法の多くの例を見てきましたが、これまでのところAndroidで機能したものはありません。それらはJAVAでのみ機能するようです。AndroidのApacheHttpClientで使用される証明書検証を構成またはオーバーライドして、DefaultHttpClient接続のすべての証明書を承認する方法を知っている人はいますか?

親切な対応ありがとうございます

4

2 に答える 2

2

誰かがまだこれを理解しようとしているなら、私はここで解決策をとることになりました:

Androidと自己署名サーバー証明書を使用したHTTPSGET(SSL)

SimonJによるソリューションまで下にスクロールします。これは、この問題に対する単純で直接的な解決策です。

于 2011-03-07T18:51:24.287 に答える
1

このチュートリアルをご覧くださいhttp://blog.antoine.li/index.php/2010/10/android-trusting-ssl-certificates/

このチュートリアルは、ApacheのHttpClientに基づいており、SSLSocketFactoryを使用して、独自のキーストアで定義された証明書を信頼する方法を説明しています(BouncyCastleプロバイダーで証明書を作成する方法も説明しています)。

私はそれをテストしました、そしてそれは素晴らしい働きをします。私の意見では、これは安全な方法です。

于 2010-10-23T21:25:14.203 に答える