мне дали самоподнешенный набор сертификатов клиента, который должен использоваться для доступа к серверу через HTTPS. Комплект состоит из следующих файлов PEM: < /p>
client.crt (сертификат клиента) < /li>
li> client.key (клиент закрытый ключ) < /li>
Сгенерировать хранилище ключа Java: < /p>
Используйте openssl для преобразования сертификата клиента и ключа в магазин клавиш PKCS12 < /li>
Использовать ключевой код, чтобы импортировать сертификат CA в магазин < /li>
< /ol>
и затем ... sslsocketfactory < /em> экземпляр: < /p>
InputStream stream = new ByteArrayInputStream(pksData);
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(stream, password);
KeyManagerFactory kmf = KeyManagerFactory.getInstance(
KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, password.toCharArray());
KeyManager[] keyManagers = kmf.getKeyManagers();
TrustManagerFactory tmfactory = TrustManagerFactory.getInstance(
TrustManagerFactory.getDefaultAlgorithm());
tmfactory.init(keyStore);
TrustManager[] trustManagers = tmfactory.getTrustManagers();
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagers, trustManagers, null);
sslSocketFactory = sslContext.getSocketFactory();
< /code>
..., которая позже используется для инициирования библиотеки http. < /p>
, поэтому мы получаем хранилище ключа, затем имит -клавиши и Trust Managers с его помощью, и, наконец, мы строим SSLSocketFactore с ними. И каким -то образом создайте SSLSocketFactory, начиная с PublicKey и экземпляра сертификата (который, например, может быть получен из PEM -файлов, используя PemReader BouncyCastle)?
Подробнее здесь: https://stackoverflow.com/questions/426 ... converting