Посмотреть сертификаты в хранилище java

Команды Java Keytool

Java Keytool — это утилита для управления ключами и сертификатами. Она позволяет пользователям управлять своими собственными парами открытых/закрытых ключей и сертификатами . Она также позволяет пользователям кэшировать сертификаты. Java Keytool хранит ключи и сертификаты в так называемом хранилище ключей. По умолчанию хранилище ключей Java реализовано в виде файла. Он защищает закрытые ключи паролем. Хранилище ключей Keytool содержит закрытый ключ и любые сертификаты, необходимые для завершения цепочки доверия и установления надежности основного сертификата.

Каждый сертификат в хранилище ключей Java связан с уникальным псевдонимом. При создании хранилища ключей Java вы сначала создадите файл .jks, который изначально будет содержать только закрытый ключ. Затем вы сгенерируете CSR, и на его основе будет сгенерирован сертификат. Затем вы импортируете сертификат в хранилище ключей, включая все корневые сертификаты. Java Keytool также имеет несколько других функций, которые позволяют просматривать сведения о сертификате или перечислять сертификаты, содержащиеся в хранилище ключей, или экспортировать сертификаты.

Эти команды позволяют создать новый файл хранилища ключей Java Keytool, создать CSR и импортировать сертификаты. Любые корневые или промежуточные сертификаты необходимо будет импортировать перед импортом основного сертификата для вашего домена.

Читайте также:  Igra pasyans ru kosinka html

Команды Java Keytool для создания и импорта

Эти команды позволяют создать новый файл хранилища ключей Java Keytool, создать CSR и импортировать сертификаты. Любые корневые или промежуточные сертификаты необходимо будет импортировать перед импортом основного сертификата для вашего домена.

Создайте хранилище ключей Java и пару ключей

keytool -genkey -alias kuzevanov.ru -keyalg RSA -keystore /etc/pki/java/cacerts -keysize 2048

Создайте запрос на подпись сертификата (CSR) для существующего хранилища ключей Java

keytool -certreq -alias kuzevanov.ru -keystore /etc/pki/java/cacerts -file file_cert.csr

Импорт корневого или промежуточного сертификата ЦС в существующее хранилище ключей Java

keytool -import -trustcacerts -alias root -file name_cert.crt -keystore /etc/pki/java/cacerts

Импорт подписанного первичного сертификата в существующее хранилище ключей Java

keytool -import -trustcacerts -alias kuzevanov.ru -file name_sert.crt -keystore /etc/pki/java/cacerts

Создайте хранилище ключей и самозаверяющий сертификат

keytool -genkey -keyalg RSA -alias selfsigned -keystore /etc/pki/java/cacerts -storepass password -validity 360 -keysize 2048

Команды Java Keytool для проверки

Если вам нужно проверить информацию в сертификате или хранилище ключей Java, используйте эти команды.

Проверить автономный сертификат

keytool -printcert -v -file name_sert.crt

Проверьте, какие сертификаты находятся в хранилище ключей Java

keytool -list -v -keystore /etc/pki/java/cacerts

Проверьте конкретную запись хранилища ключей, используя псевдоним

keytool -list -v -keystore /etc/pki/java/cacerts -alias kuzevanov.ru

Другие команды Java Keytool

Удалить сертификат из хранилища ключей Java Keytool

keytool -delete -alias kuzevanov.ru -keystore /etc/pki/java/cacerts

Изменить пароль хранилища ключей Java

keytool -storepasswd -new new_storepass -keystore /etc/pki/java/cacerts

Экспорт сертификата из хранилища ключей

keytool -export -alias kuzevanov.ru -file name_sert.crt -keystore /etc/pki/java/cacerts

Получение списка доверенных сертификатов ЦС

keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts

Импорт нового ЦС в доверенные сертификаты

keytool -import -trustcacerts -file /path/to/ca/ca.pem -alias CA_ALIAS -keystore $JAVA_HOME/jre/lib/security/cacerts

Источник

Основы Java Keytool: работа с Java Keystore

Java Keytool – это инструмент Java для управления ключами, сертификатами и хранилищами ключей. Java Keystore (или JKS) – это хранилище сертификатов открытых ключей и авторизации, которое часто используется приложениями на основе Java для шифрования, аутентификации и установки соединений HTTPS. Все его записи защищены паролем хранилища ключей. Запись хранилища ключей идентифицируется псевдонимом и содержит надежные ключи и сертификаты.

Данное руководство описывает использование команд keytool, очень полезных при работе с JKS. Также оно охватывает создание и редактирование хранилищ ключей Java для Java-приложений.

Создание и импортирование записей

Данный раздел посвящен командам Java Keytool, которые создают пары ключей и сертификатов, а также импортируют сертификаты.

Создание ключей

Используйте этот метод для поддержки HTTPS (HTTP по TLS). В данном разделе показано, как создать новую пару ключей в новом или уже существующем хранилище ключей Java, которые могут быть использованы для создания запроса на подпись сертификата (CSR) или получения SSL-сертификата в центре сертификации.

Данная команда сгенерирует пару 2048-битных RSA-ключей под указанным псевдонимом (в данном случае это domain) в указанном файле хранилища (keystore.jks).

keytool -genkeypair \
-alias domain \
-keyalg RSA \
-keystore keystore.jks

Если же заданного хранилища ключей не существует, оно будет создано после получения запрашиваемой информации (а именно пароля хранилища ключей, строки Distinguished Name (для закрытого ключа) и пароля закрытого ключа).

Создание CSR для существующего закрытого ключа

Чтобы сгенерировать запрос на подпись сертификата, который можно отправить в ЦС для получения надежного SSL-сертификата, следуйте данному разделу руководства. Для этого понадобятся уже существующее хранилище ключей и псевдоним.

Данная команда создаст CSR (domain.csr), подписанный закрытым ключом с псевдонимом domain в хранилище keystore.jks:

keytool -certreq \
-alias domain \
-file domain.csr \
-keystore keystore.jks

Введите пароль хранилища ключей, после чего запрос будет создан.

Импортирование подписанного/Root/промежуточного сертификата

В данном разделе показано, как импортировать сертификаты (например, подписанный ЦС сертификат) в хранилище ключей. Он должен соответствовать закрытому ключу с определенным псевдонимом. Также данную команду можно использовать для импортирования root или промежуточного сертификата, который может потребовать ЦС для завершения доверительной цепочки. Просто укажите уникальный псевдоним, (например, root вместо domain) и сертификат, который необходимо импортировать.

Следующая команда импортирует сертификат (domain.crt) в хранилище ключей (keystore.jks) под указанным псевдонимом (domain). Подписанный сертификат при импортировании должен соответствовать закрытому ключу с указанным псевдонимом:

keytool -importcert \
-trustcacerts -file domain.crt \
-alias domain \
-keystore keystore.jks

На данном этапе будет предложено ввести пароль хранилища ключей, а затем подтвердить импортирование.

Примечание: можно также использовать эту команду, чтобы импортировать сертификаты ЦС в Java truststore (хранилище доверенных сертификатов), которое, как правило, находится в $JAVA_HOME/jre/lib/security/cacerts, (предполагается, что JRE или JDK установлены в $JAVA_HOME).

Создание самоподписанного сертификата в новом/существующем хранилище

В данном разделе показано, как создать самоподписанный сертификат для приложения Java. На самом деле, для этого используется та же команда, что и для создания новой пары ключей, но с параметром days, задающим срок действия сертификата.

Итак, данная команда создаст пару 2048-битных RSA-ключей, действительных на протяжении 365 дней, с указанным псевдонимом (domain) в заданном файле ключей (keystore.jks):

keytool -genkey \
-alias domain \
-keyalg RSA \
-validity 365 \
-keystore keystore.jks

Если заданного хранилища ключей не существует, команда создаст его, получив необходимые данные (это пароль хранилища, Distinguished Name (дл закрытого ключа) и пароль закрытого ключа).

Просмотр записей хранилища ключей

В данном разделе речь пойдет о содержимом Java Keystore, а именно о просмотре информации сертификата и экспортировании сертификатов.

Проверка контрольной суммы сертификата

Данная команда выводит список контрольных сумм всех сертификатов хранилища (keystore.jks) с соответствующими псевдонимами.

keytool -list \
-keystore keystore.jks

При этом будет запрошен пароль хранилища. Кроме того, можно ограничить вывод до определенного псевдонима с помощью опции -alias domain (где domain – нужный псевдоним).

Подробное содержание хранилища

Данная команда выведет подробную информацию о записях, находящихся в хранилище keystore.jks, в том числе длину цепи сертификата, контрольных сумм сертификатов в цепочке, имена (distinguished name), серийные номера, а также дату создания и срок дейтвия по псевдонимам:

keytool -list -v \
-keystore keystore.jks

На данном этапе нужно ввести пароль хранилища ключей. Опять же, с помощью опции -alias domain (где domain – это псевдоним) можно ограничить вывод до определенного псевдонима.

Примечание: также эту команду можно использовать, чтобы просмотреть сертификаты в хранилище доверенных сертификатов Java (как правило, оно находится в $JAVA_HOME/jre/lib/security/cacerts, если JRE или JDK установлены в $JAVA_HOME).

Использование Keytool для просмотра информации о сертификате

Данная команда выведет подробную информацию о файле сертификата (certificate.crt), в том числе контрольную сумму, distinguished name владельца и срок его действия:

keytool -printcert \
-file domain.crt

При этом нужно ввести пароль хранилища.

Экспортирование сертификатов

Данная команда экспортирует бинарный DER-зашифрованный сертификат (domain.der) с псевдонимом (domain) в хранилище (keystore.jks):

keytool -exportcert
-alias domain
-file domain.der
-keystore keystore.jks

Укажите пароль хранилища ключей.

Редактирование хранилища ключей

Данный раздел охватывает редактирование записей Java Keystore (например, удаление и изменение псевдонимов).

Изменение пароля хранилища

При помощи этой команды можно изменить пароль хранилища (keystore.jks):

keytool -storepasswd \
-keystore keystore.jks

Укажите текущий пароль хранилища ключей, а затем новый пароль. Задать новый пароль можно и при помощи самой команды, внеся в нее опцию -new newpass, где newpass – новый пароль.

Удаление псевдонима

Данная команда удалит псевдоним domain из хранилища keystore.jks:

keytool -delete \
-alias domain \
-keystore keystore.jks

Изменение псевдонима

При помощи данной команды можно изменить псевдоним (например, domain на newdomain):

keytool -changealias \
-alias domain \
-destalias newdomain \
-keystore keystore.jks

Итоги

Данное руководство описывает большинство операций, которые выполняются при управлении Java Keystores. Конечно, охватить все функции в одной статье невозможно. Но зная базовые команды, можно самостоятельно поэкспериментировать с управлением хранилищами.

Данное руководство основано на версии хранилища ключей, которое поставляется с Java 1.7.0. чтобы установить Java, читайте данную статью.

Источник

Оцените статью