Создать 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

Надеюсь, это поможет!

Другие вопросы по тегам