Автоматическая установка самозаверяющего сертификата

Я запускаю намерение KeyChain для установки самозаверяющего сертификата, который у меня есть в памяти, как объект X509Certificate (полученный методом X509TrustManager методом checkServerTrusted). С помощью этого кода:

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

Новая активность запущена, и я могу получить сообщение «сертификат установлен», но я не могу найти его через список сертификатов безопасности, а при попытке подключиться к этому хосту он, похоже, не установлен.

Любая идея о том, как ее решить?

    На экране списка сертификатов безопасности, который вы упоминаете, содержится только список доверенных сертификатов CA, которые вы добавили на устройство Android. (Примечание: системный список сертификатов – это список доверенных ЦС, установленных производителем устройства). Нет экрана (по крайней мере, на некорневом телефоне), который показывает вам сертификаты KeyChain.

    Чтобы приложение могло получить доступ к сертификату / ключу, ему необходимо запросить разрешение ОС. Для этого в классе KeyChain есть метод, называемый selectPrivateKeyAlias, который показывает пользователю действие, чтобы выбрать, к какому сертификату может иметь доступ приложение. Это действие должно содержать список импортированных сертификатов, которые вы установили, используя метод выше.

    Подробнее см. Ссылку ниже.

    Унифицирование доступа к хранилищу ключей в ICS