KeyStore keystore_client = KeyStore.getInstance("pkcs12");
try(InputStream keyInput = new FileInputStream("2.pfx")){
keystore_client.load(keyInput, null);
}
Enumeration<String> e = keystore_client.aliases();
while(e.hasMoreElements()){
String alias = e.nextElement();
if(keystore_client.getCertificate(alias)==null)
throw new RuntimeException("Cannot get Certificate");
}
Когда я запускаю этот код, я получаю исключение: «Не могу получить сертификат».Java - Почему я не могу перечислять сертификаты в KeyStore, используя их псевдоним?
Как извлечь сертификаты из файла pkcs12?
Редактировать:
Файл pfx был создан openssl.
$ openssl pkcs12 -export -out 2.pfx -in server.crt -inkey server.key
$ keytool -list -keystore 2.pfx
Enter keystore password:
***************** WARNING WARNING WARNING *****************
* The integrity of the information stored in your keystore *
* has NOT been verified! In order to verify its integrity, *
* you must provide your keystore password. *
***************** WARNING WARNING WARNING *****************
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
1, May 9, 2016, PrivateKeyEntry,
Привет @tom, keystore_client.getCertificate (псевдоним) возвращает нуль. –
Вы проверили, какой псевдоним вызывает эту проблему? И это также может означать, что псевдоним существует, но нет сертификата, назначенного ему (более того). – Tom
Привет @Tom, Спасибо за вашу помощь. Я просто добавил информацию о файле pfx. Взгляни, пожалуйста. И псевдоним «1». –