Java KeyStore или JKS — это специализированный формат хранения криптографических ключей и сертификатов, используемый в экосистеме Java. Он представляет собой защищённое хранилище, в котором могут находиться:
- Закрытые ключи;
- Сертификаты (включая цепочки доверия);
- Доверенные корневые сертификаты.
Каждый элемент в хранилище имеет уникальное имя (alias), а доступ к файлу JKS осуществляется с помощью пароля.
Основные характеристики
Характеристика | Описание |
---|---|
Тип данных | Ключи, сертификаты, доверенные цепочки |
Формат | Собственный бинарный формат Java |
Расширение файла | .jks, иногда.keystore |
Использование | Java-приложения, серверные решения (Tomcat, Jetty и др.) |
Управление | Через утилиту keytool, входящую в JDK |
Где применяется Java KeyStore?
- Настройка SSL/TLS для Java-серверов: например, при настройке HTTPS на серверах Tomcat, Jetty, WildFly и других Java EE-совместимых контейнерах;
- Хранение закрытых ключей и сертификатов: используется для безопасного хранения приватных ключей, необходимых для шифрования и подписи данных;
- Интеграция с государственными системами: в некоторых случаях требуется импорт сертификатов ЭЦП в формате JKS для работы с российскими системами электронного документооборота ЭДОЭлектронный документооборот (ЭДО) — это автоматизированная система управления документами, которая позволяет создавать, обрабатывать, More;
- Клиентская аутентификация по сертификату: поддерживается в Java-приложениях, где клиент должен представить свой сертификат серверу для проверки подлинности.
Как работать с Java KeyStore
Основные команды keytool:
bash:
# Создать новое хранилище с генерацией ключевой пары
keytool -genkeypair -alias mykey -keyalg RSA -keystore keystore.jks -storepass password
# Импортировать существующий сертификат в JKS
keytool -importcert -file certificate.cer -keystore keystore.jks -alias trustcert
# Просмотр содержимого хранилища
keytool -list -keystore keystore.jks
# Удалить запись из хранилища
keytool -delete -alias mykey -keystore keystore.jks
Конвертация из других форматов:
# Конвертация .p12 в .jks
keytool -importkeystore -srckeystore cert.p12 -srcstoretype PKCS12 -destkeystore keystore.jks -deststoretype JKS
Преимущества использования JKS
- Интеграция с Java — стандартный формат для Java-приложений;
- Безопасность — данные хранятся в защищённом виде, с возможностью установки пароля на хранилище;
- Поддержка SSL/TLS — используется при настройке защищённых соединений в Java-серверах;
- Гибкость — позволяет хранить как собственные ключи, так и доверенные сертификаты.
Альтернативы JKS
С версии Java 9 и выше рекомендуется использовать более современные типы хранилищ:
- PKCS12 — стандартный формат, совместимый с другими системами;
- Windows-MY — для интеграции с Windows Certificate Store;
- KeyStore API — программное управление через Java-код.