Как импортировать существующий файл хранилища ключей Java (.jks) в установку Java? - PullRequest
33 голосов
/ 18 октября 2011

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

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

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

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

Ответы [ 3 ]

41 голосов
/ 18 октября 2011

Хорошо, вот мой процесс:

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, псевдоним уже не может существовать в вашем хранилище ключей.

26 голосов
/ 18 октября 2011

чтобы загрузить 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();
25 голосов
/ 23 марта 2016

Вы можете массово импортировать все псевдонимы из одного хранилища ключей в другое:

keytool -importkeystore -srckeystore source.jks -destkeystore dest.jks
...