Итак, вот мой процесс:
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 говорит, что псевдоним уже не существует в вашем хранилище ключей.
, чтобы загрузить 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();
Вы можете импортировать все псевдонимы из одного хранилища ключей в другое:
keytool -importkeystore -srckeystore source.jks -destkeystore dest.jks
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
, хотя предыдущий шаг (экспорт), я могу успешно завершить свой пароль. Вы знаете, почему это так? – Thai Tran 24 August 2014 в 00:33