Как импортировать существующий файл keystore (.jks) Java в установку Java?
Итак, у меня проблемы с LDAP. У меня есть тестовый пример интеграции, который, надеюсь, будет работать, но в настоящее время он работает с проблемами безопасности LDAPS с помощью SSL-подтверждения.
Я могу подключиться к LDAPS с Apache Directory Studio, и он загрузил хранилище ключей в файл "Permanent.jks".
Это нормально, но я хочу, чтобы мой интеграционный тест, который находится в Eclipse с помощью JRE, мог подключаться к серверу LDAP с использованием этого хранилища ключей.
Как я могу взять это хранилище ключей и импортировать его в JRE для собственного использования?
Ответы
Ответ 1
Итак, вот мой процесс:
keytool -list -v -keystore permanent.jks
- получил псевдоним.
keytool -export -alias alias_name -file certificate_name -keystore permanent.jks
- я получил сертификат для импорта.
Затем я мог бы импортировать его с помощью keytool:
keytool -import -alias alias_name -file certificate_name -keystore keystore location
Как @Christian Bongiorno говорит, что псевдоним уже не существует в вашем хранилище ключей.
Ответ 2
чтобы загрузить KeyStore, вам нужно указать ему тип хранилища ключей (вероятно, jceks), предоставить входной поток и пароль. то вы можете загрузить его так:
KeyStore ks = KeyStore.getInstance(TYPE_OF_KEYSTORE);
ks.load(new FileInputStream(PATH_TO_KEYSTORE), PASSWORD);
это может привести к исключению KeyStoreException, поэтому вы можете окружить блок try, если хотите, или перебросить. Имейте в виду, что хранилище ключей может содержать несколько ключей, поэтому вам нужно найти свой ключ с псевдонимом, вот пример с симметричным ключом:
SecretKeyEntry entry = (KeyStore.SecretKeyEntry)ks.getEntry(SOME_ALIAS,new KeyStore.PasswordProtection(SOME_PASSWORD));
SecretKey someKey = entry.getSecretKey();
Ответ 3
Вы можете массово импортировать все псевдонимы из одного хранилища ключей в другое:
keytool -importkeystore -srckeystore source.jks -destkeystore dest.jks