Рубрики
Без рубрики

Как импортировать сертификат .cer в хранилище ключей Java

Давайте узнаем, как импортировать сертификат в наши хранилища ключей с помощью команды keytool.

Автор оригинала: Donato Rimenti.

1. Обзор

Хранилище ключей, как следует из названия, в основном представляет собой хранилище сертификатов, открытых и закрытых ключей. Кроме того, дистрибутивы JDK поставляются с исполняемым файлом, который помогает управлять ими, инструментом ключ .

С другой стороны, сертификаты могут иметь множество расширений, но мы должны иметь в виду, что файл .cer содержит открытые ключи X. 509 и, следовательно, может использоваться только для проверки личности.

В этой короткой статье мы рассмотрим, как импортировать файл .cer в хранилище ключей Java.

2. Импорт сертификата

Без лишних слов давайте теперь импортируем файл открытого сертификата Baeldung в образец хранилища ключей.

Инструмент ключ имеет множество опций, но нас интересует importcert , который так же прост, как и его название. Поскольку в хранилище ключей обычно содержатся разные записи, нам придется использовать аргумент псевдоним , чтобы присвоить ему уникальное имя:

> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore
> Enter keystore password:
...
> Trust this certificate? [no]:  y
> Certificate was added to keystore

Хотя команда запрашивает пароль и подтверждение, мы можем обойти их, добавив storepass и без запроса аргументы . Это особенно удобно при запуске keytool из сценария:

> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore -storepass pass123 -noprompt
> Certificate was added to keystore

Кроме того, если хранилище ключей не существует, оно будет сгенерировано автоматически. В этом случае мы можем задать формат с помощью аргумента тип хранилища . Если не указано, формат хранилища ключей по умолчанию равен JKS , если мы используем Java 8 или старше. Начиная с Java 9, по умолчанию используется значение PKCS12 :

> keytool -importcert -alias baeldung_public_cert -file baeldung.cer -keystore sample_keystore -storetype PKCS12
> Enter keystore password:
> Re-enter new password:
...
> Trust this certificate? [no]: y
> Certificate was added to keystore

Здесь мы создали хранилище ключей PKCS12. Основное различие между JKS и PKCS12 заключается в том, что JKS-это формат, специфичный для Java, в то время как PKCS12-это стандартизированный способ хранения ключей и сертификатов

В случае необходимости мы также можем выполнить эти операции программно .

3. Заключение

В этом уроке мы рассмотрели, как импортировать файл .cer в хранилище ключей. Для этого мы использовали опцию keytool importcert .