5

Android アプリから Apache の HttpClient 4.X を使用して HTTPS Web サイトにクエリを実行しようとしています。javax.net.ssl.SSLPeerUnverifiedException: No peer certificate例外があります。証明書のインポートに関するさまざまな指示に従いました。

これらのどれも私にとってはうまくいきませんでした。

私の問題は、サイトの証明書チェーンが次のようになっていることだと思います。

  • テレコム ルート CA 2
    • 中級A
      • 中級B
        • サイトの証明書

Telekom Root CA 2は、Android のデフォルト キーストア ( ) に含まれています/system/etc/security/cacerts.bks。テストに使用する自分の電話で確認しました。

問題は、どの証明書をカスタム キーストアに含めなければならないかということです。中級者だけ?サイトだけ?両方?ルート証明書も必要ですか? チェーンによって検証されるべきではありませSite's certificateん - チェーンのルートは信頼されているため、追加の証明書を提供する必要はありません。

何が起こっているのか、どうすればこれを機能させることができるのかを説明していただければ幸いです。証明書を無視するだけの回避策を投稿しないでください。これは運用を目的としており、安全でなければなりません。

4

1 に答える 1

3

正確にこれを行う方法について、しばらく前に完全に機能する例を含むブログ投稿を書きました。http://chariotsolutions.com/blog/post/https-with-client-certificates-on/を参照してください。

( GitHub のブログ投稿のコード)

于 2013-05-12T23:26:58.710 に答える