null

keystore.jks и как его трогать

Все мы знаем, что Java -- это удобно и приятно.

Для хранения ключей и сертификатов Java использует специальное хранилище, которое по сути своей является бинарным файлом. Обычно этот файл называется keystore.jks для хранения сертификатов пользователя и ключей или truststore.jks для хранения доверенных сертификатов.

Управляется всё это добро при помощи специальной утилиты keytool, основные операции с которой я и опишу в данной статье. 

1. Создание хранилищ, ключей и CSR

Создание Java keystore и пары ключей. 

keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -storepass password

Создание CSR для существующего alias'а

keytool -certreq -alias mydomain -keystore keystore.jks -storepass password -file mydomain.csr

Создание keystore и самоподписанного сертификата

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360

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

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

keytool -import -trustcacerts -alias root -file CA.crt -keystore keystore.jks -storepass password

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

keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore keystore.jks -storepass password

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

keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks -storepass password

4. Простмотр данных о сертификате или хранилища

Просмотр данных об отдельном сертификате

keytool -printcert -v -file mydomain.crt

Вывести список сертификатов в хранилище

keytool -list -v -keystore keystore.jks -storepass password

Вывести данные о конкретном сертификате в хранилище

keytool -list -v -keystore keystore.jks -storepass password -alias mydomain

5. Удаление сертификатов из хранилища

keytool -delete -alias mydomain -keystore keystore.jks -storepass password

6. Изменение паролей

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

keytool -storepasswd -new new_storepass -keystore keystore.jks -storepass password

Изменение пароля приватного ключа

keytool -keypasswd -alias client -keypass old_password -new new_password -keystore client.jks -storepass password

 

Следует отметить, что это лишь список команд для основных типичных сценариев использования утилиты. Более подробно о keytool и keystore можно почитать в официальной документации на сайте Oracle.