Подтвердить что ты не робот

Как импортировать существующий файл keystore (.jks) Java в установку Java?

Итак, у меня проблемы с LDAP. У меня есть тестовый пример интеграции, который, надеюсь, будет работать, но в настоящее время он работает с проблемами безопасности LDAPS с помощью SSL-подтверждения.

Я могу подключиться к LDAPS с Apache Directory Studio, и он загрузил хранилище ключей в файл "Permanent.jks".

Это нормально, но я хочу, чтобы мой интеграционный тест, который находится в Eclipse с помощью JRE, мог подключаться к серверу LDAP с использованием этого хранилища ключей.

Как я могу взять это хранилище ключей и импортировать его в JRE для собственного использования?

4b9b3361

Ответ 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