Преобразование keytool из PFX в JKS: псевдоним <*> не существует

Я пытаюсь преобразовать файл x.PFX в файл x.JKS, используя keytool, но получаю следующую ошибку:

keytool error: java.lang.Exception: Alias <2> does not exist

Действия, которые предшествовали этой ошибке:

Перечисление содержимого файла x.PFX (просто чтобы прочитать псевдоним):

keytool -v -list -storetype pkcs12 -keystore x.pfx

Enter keystore password: x

Keystore type: PKCS12   
Keystore provider: SunJSSE

Your keystore contains 1 entry

Alias name: 2
Creation date: 11-nov-2012

Entry type: PrivateKeyEntry
Certificate chain length: 3
Certificate[1]:
Owner: CN=x, OU=x, C=x
Issuer: CN=x, O=x, C=x
Serial number: x
Valid from: Wed Oct 24 11:46:10 CEST 2012 until: Fri Dec 13 09:28:40 CET 2013
Certificate fingerprints:

etc.

Преобразование файла x.PFX в файл x.JKS с использованием "2" в качестве имени псевдонима источника

keytool -importkeystore -srckeystore x.pfx -srcstoretype pkcs12 -srcalias 2 -destkeystore x.jks -deststoretype jks -destalias xyz
Enter destination keystore password: y
Re-enter new password: y
Enter source keystore password: x
keytool error: java.lang.Exception: Alias <2> does not exist

Я не уверен, что я делаю не так? Файл PFX содержит только одну запись с одним псевдонимом (2). Я также попытался использовать эти значения srcalias: 2, "2", " 2". Есть ли другой способ конвертировать PFX в JKS, используя keytool, не зная псевдоним источника?

5 ответов

Решение

У меня была точно такая же проблема. Я решил использовать "1" вместо 2. Не знаю почему, но это сработало.

Если установить псевдоним в pkcs12:

openssl pkcs12 -export -in certificate.pem -inkey private_key.pem -out keystore.p12 -name "myalias"

псевдоним успешно установлен:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype JKS -alias myalias

Ваша команда должна выглядеть примерно так

keytool -importkeystore -srckeystore x.pfx -srcstoretype pkcs12 -***alias*** 2 -destkeystore x.jks -deststoretype jks -destalias xyz

Возможно, "2" не может быть найден, потому что есть пробелы (например, "2 ")

Если вы не хотите изменять псевдоним, просто удалите параметры -srcalias и -destalias, и он будет импортирован с исходным псевдонимом.

Вы можете использовать keytool для вывода списка псевдонимов в вашем*.pfxфайл, просто используйте следующую команду:

      keytool -list -keystore yourPrivateCertificate.pfx

Это даст вам что-то вроде этого:

      Enter keystore password:
Keystore type: jks
Keystore provider: SUN

Your keystore contains 1 entry

253db30c3ad14553aebb0e5a0a5255d0_e5345748-fe48-42ac-81e7-b48cfb4610dd, Nov 25, 2019, PrivateKeyEntry,
Certificate fingerprint (SHA1): 
A9:3B:80:3C:D9:63:0E:FF:91:72:AC:11:4B:45:99:14:9E:AD:EC:FB

Итак, в приведенном выше случае псевдонимом является следующее:

      253db30c3ad14553aebb0e5a0a5255d0_e5345748-fe48-42ac-81e7-b48cfb4610dd

Это значение необходимо использовать для псевдонима источника.

Другие вопросы по тегам