Автор оригинала: 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 .