Я пытаюсь использовать KeyStore, чтобы получить информацию из хранилища ключей. Я создал хранилище ключей с помощью этой команды:
keytool -genkey -alias server -keyalg RSA -keystore server.keystore -validity 365
взята эта страница.
Проверяя его информацию keytool -list -v -keystore server.keystore
я получаю следующее:
Псевдоним: server
Дата создания: 30 апреля 2014 г.
Тип записи: PrivateKeyEntry
Длина цепочки сертификатов: 1
Сертификат[1]:
(дополнительная информация здесь)
Используя эту команду: keytool -list -keystore server.keystore -alias server
я получаю это:
сервер, 30 апреля 2014 г., PrivateKeyEntry, отпечаток сертификата (SHA1): 28:65:5B:0C:B3:3C:C9:AA:F1:7C:CE:91:23:77:DD:0D:F8:54 :70:B9
Теперь мой Java-код:
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(getClass().getResourceAsStream(KEYSTORE_FILE_PATH), "myPass".toCharArray());
keyStore.getCertificate("server").getPublicKey().getEncoded(); //here I get a null pointer exception - keystore.getCertificate("server") returns null.
Выполнение keyStore.aliases()
возвращает EmptyEnumeration.
Приложение использует maven, java ee 7, и я скопировал файл хранилища ключей в папку ресурсов моего приложения. KEYSTORE_FILE_PATH имеет значение «/server.keystore».
Спасибо.