.jks
, .dks
, .p12
, и другими, в зависимости от типа хранилища. Для манипуляций над файлами хранилищ в JDK поставляется специальная утилита – keytool. Отдельные ключи разных типов добавляются в хранилище под заданными именами (
alias
). Еще этот файл называют базой данных сертификатов. Этот файл обычно защищен паролем.KeyStore и TrustStore устроены похоже, но служат разным целям. KeyStore хранит данные о нашем приложении, тогда как TrustStore – о других, которым мы доверяем.
По умолчанию не подключается никакой KeyStore. Подключить его можно параметрами
javax.net.ssl.keyStore
(расположение файла), javax.net.ssl.keyStoreType
(тип) и javax.net.ssl.keyStorePassword
(пароль). Добавочные можно загружать динамически, классом java.security.KeyStore
.По умолчанию в приложении подключен один TrustStore, файл
jre/lib/security/cacerts
. Переопределить его можно параметрами JVM javax.net.ssl.trustStore
, javax.net.ssl.trustStorePassword
и javax.net.ssl.trustStorePassword
.Типичный пример использования – подключить TrustStore с самоподписанным SSL сертификатом, чтобы приложение могло ходить на определенный сайт по протоколу HTTPS, не проваливая проверку безопасности. Либо же подключить KeyStore с подлинным SSL сертификатом, чтобы приложение само работало как HTTPS-сервер.