Вопрос

Я пишу приложение для Android. Как я могу использовать сертификат в https Подключение Когда я инициализирую сертификат из файла каталогов, а не из пакетов?

Когда у меня есть файл пакетов с паролем, этот код работает:

 Keystore beystore = keystore.getinstance ("pkcs12"); keystore.load (Сертификат, Pass.Tochararray ()); KeyManagerFactory kmf = beymanagerfactory.getInstance (beymanagerfactory.getdefaultalgorithm ()); kmf.init (Кейстор, Pass.Tochararray ()); SSLContext SC = SSLContext.getInstance («TLS»); sc.init (kmf.getkeymanagers (), trustallсловие, новые java.security.securelandom ()); Httpsurlconnection.ettefaultsslsocketFactory (SC.GetSocketFactory ());

Но у меня есть сертификат инициализирован из файла DER:

 СЕРТИМАЛЬНЫЕ ИЗОБРАЖЕНИЕ CF = СЕРТИФЕРФИГАЦИОННЫЕ ИЗТВЕРЖДЕНИЯ. GTETINSTANCE («X.509»); X509certificate сертификат = (x509certificate) cf.generateCertificate (certbytes);

Я не знаю, как использовать этот сертификат https связь.

Это было полезно?

Решение

Кажется, вы говорите о аутентификации клиент-сертификата (где ваше устройство Android является клиентом).

Во-первых, вам понадобится клиент, чтобы закрыть закрытый ключ, сопоставив открытый ключ в сертификате, который вы пытаетесь использовать (вот всю точку зрения, в противном случае он не будет уведомлен. PKCS # 12 является одним из обычных форматов для содержания закрытого ключа и сертификата. Если у вас есть только сертификат в отрицательный Файл, у вас, вероятно, не будет частного ключа в этом, следовательно, это не будет работать. Из вашего вопроса не совсем ясно, что вы делаете с вашим certificate переменная, по отношению к KeyManagerFactory (Если у вас есть обычай X509KeyManager, это должно вернуть закрытый ключ в его getPrivateKey Метод, в противном случае это не будет работать).

Во-вторых, на сервере всегда инициируется аутентификация клиент-сертификата, поэтому вам понадобится, чтобы сервер был соответственно настроенным (кажется, что это имеет место, если ваш тест на основе работы PKCS # 12 Keystore работает).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top