Создать SSLContext из закрытого ключа и файлов cer
У меня есть два файла: mycer.cer mykey.key
Мне нужно создать SslContext для подключения к другому серверу через SSL с использованием Java. Я пытаюсь выяснить, как я могу создать объект SslContext непосредственно из этих файлов.
Этот пост может быть продублирован, но я попытался найти четкое объяснение с примером для создания SslContext, но не нашел ничего ясного.
заранее спасибо
1 ответ
На этот вопрос уже дан ответ здесь: каков самый простой способ создать SSLContext с помощью только файла PEM?
Я создал библиотеку для этого варианта использования, чтобы упростить настройку. Под покрывалами используется надувной замок. См. Ниже об использовании:
X509ExtendedKeyManager keyManager = PemUtils.loadIdentityMaterial("certificate-chain.cer", "mykey.key");
X509ExtendedTrustManager trustManager = PemUtils.loadTrustMaterial("mycer.cer");
SSLFactory sslFactory = SSLFactory.builder()
.withIdentityMaterial(keyManager)
.withTrustMaterial(trustManager)
.build();
SSLContext sslContext = sslFactory.getSslContext();
Чтобы использовать указанную выше настройку, вы можете использовать эту библиотеку:
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>sslcontext-kickstart-for-pem</artifactId>
<version>5.4.0</version>
</dependency>
Получите сертификат в формате p12. Насколько я знаю, вы не можете использовать файл cert, для этого есть утилиты (например, openssl) из источника (откуда вы сгенерировали скачанный сертификат), который может дать вам формат p12.
openssl pkcs12 -export -in mycer.crt -inkey mykey.key -out mycer.p12 -name "mycer"
А затем проверьте ниже URL-адрес.. он должен содержать информацию, которую вы хотите.
Проверка подлинности сертификата клиента Java HTTPS
Надеюсь, это поможет!