2012-10-18 23 views
5

X509Certificateオブジェクト(checkServerTrustedメソッドによってX509TrustManagerが取得)としてメモリ上にある自己署名証明書をインストールするためのKeyChainインテントを開始します。このコードで :自己署名証明書をプログラムでインストールする

Intent intent = KeyChain.createInstallIntent(); 
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certs[0].getEncoded()); 
intent.putExtra(KeyChain.EXTRA_NAME, "certificate"); 
context.startActivityForResult(intent, 0); 

新しい活動が開始されると、私は、「証明書がインストールされている」というメッセージを得ることができますが、そのホストに接続しようとしたとき、私は、セキュリティ証明書のリストを通してそれを見つけ、することはできません、それインストールされていないようです。

どのように解決するかについてのご意見はありますか?

+0

あなたはこの回答を見つけることができましたか? –

答えて

1

「セキュリティ証明書リスト」画面には、Androidデバイスに追加した信頼性のあるCA証明書の一覧のみが表示されます。 (注:証明書のシステムリストは、デバイスメーカーが設定した信頼できるCAのリストです)。 KeyChainの証明書を表示する画面はありません。

アプリが証明書/キーにアクセスするには、OSに許可を求める必要があります。これを行うために、KeyChainクラスには、choosePrivateKeyAliasというメソッドがあります。このメソッドは、ユーザーがアプリケーションがアクセスできる証明書を選択するアクティビティを示します。このアクティビティには、上記の方法を使用してインストールしたインポート済みの証明書が一覧表示されます。

詳細については、下のリンクを参照してください。

Unifying Key Store Access in ICS

関連する問題