1. Обзор
KeyStore, как следует из названия, представляет собой хранилище сертификатов, открытых и закрытых ключей. Более того, дистрибутивы JDK поставляются с исполняемым файлом для управления ими — keytool
.
С другой стороны, сертификаты могут иметь много расширений, но нужно помнить, что файл .cer содержит общедоступные ключи X.509 и поэтому может использоваться только для проверки личности.
В этой короткой статье мы рассмотрим, как импортировать файл .cer
в хранилище ключей Java.
2. Импорт сертификата
Без дальнейших церемоний давайте теперь импортируем файл общедоступного сертификата ForEach в образец KeyStore.
У keytool
есть много опций, но нас интересует importcert
, который так же прост, как и его имя. Поскольку внутри KeyStore обычно есть разные записи, нам придется использовать аргумент псевдонима
, чтобы присвоить ему уникальное имя:
> keytool -importcert -alias foreach_public_cert -file foreach.cer -keystore sample_keystore
> Enter keystore password:
...
> Trust this certificate? [no]: y
> Certificate was added to keystore
Хотя команда запрашивает пароль и подтверждение, мы можем обойти их, добавив аргументы storepass
и noprompt
. Это особенно удобно при запуске keytool
из скрипта:
> keytool -importcert -alias foreach_public_cert -file foreach.cer -keystore sample_keystore -storepass pass123 -noprompt
> Certificate was added to keystore
Кроме того, если хранилище ключей не существует, оно будет создано автоматически. В этом случае мы можем установить формат через аргумент storetype
. Если не указано, формат KeyStore по умолчанию JKS
, если мы используем Java 8 или более раннюю версию. Начиная с Java 9 по умолчанию используется PKCS12 :
> keytool -importcert -alias foreach_public_cert -file foreach.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 в хранилище ключей. Для этого мы использовали опцию importcert keytool
.