Я хотів перерахувати сертифікати, що зберігаються у сховищі ключів PKCS12.
Магазин ключів має розширення .pfx
Я хотів перерахувати сертифікати, що зберігаються у сховищі ключів PKCS12.
Магазин ключів має розширення .pfx
Відповіді:
Якщо сховище ключів має тип PKCS12 ( .pfx
), його потрібно вказати -storetype PKCS12
(додані розриви рядків для читабельності):
keytool -list -v -keystore <path to keystore.pfx> \
-storepass <password> \
-storetype PKCS12
.p12
)? Я отримуюjava.io.IOException: Invalid keystore format
Ви також можете використовувати openssl
те ж саме:
$ openssl pkcs12 -nokeys -info \
-in </path/to/file.pfx> \
-passin pass:<pfx's password>
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
localKeyID: XX XX XX XX XX XX XX XX XX XX XX XX XX 48 54 A0 47 88 1D 90
friendlyName: jedis-server
subject=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXX/CN=something1
issuer=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXXX/CN=something1
-----BEGIN CERTIFICATE-----
...
...
...
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Ви можете перерахувати записи (деталі сертифікатів) за допомогою інструменту клавіш, і навіть вам не потрібно згадувати тип магазину.
keytool -list -v -keystore cert.p12 -storepass <password>
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
Alias name: 1
Creation date: Jul 11, 2020
Entry type: PrivateKeyEntry
Certificate chain length: 2
У питанні та всіх відповідях бракує того, що вам може знадобитися парольна фраза для читання загальнодоступних даних із сховища ключів PKCS # 12 (.pfx). Якщо вам потрібна парольна фраза, це залежить від того, як було створено файл PKCS # 12. Ви можете перевірити структуру файлу ASN1 (запустивши його через синтаксичний аналізатор ASN1, openssl або certutil це теж може зробити), якщо дані PKCS # 7 (наприклад, префікс OID 1.2.840.113549.1.7) вказані як "зашифровані" або із специфікацією шифру або якщо розташування даних у дереві asn1 знаходиться нижче зашифрованого вузла, ви не зможете прочитати їх без знання парольної фрази. Це означає, що ваша команда 'openssl pkcs12' не вдасться виконати помилки (результат залежить від версії). Для тих, хто цікавиться, чому вас може зацікавити сертифікат PKCS # 12 без знання парольної фрази. Уявіть, що у вас багато сховищ ключів і багато фаз-фраз, і ви дійсно погано тримаєте їх організованими, і ви не хочете перевіряти всі комбінації, сертифікат всередині файлу може допомогти вам дізнатись, яким це може бути пароль. Або ви розробляєте програмне забезпечення для міграції / оновлення магазину ключів, і вам потрібно заздалегідь вирішити, яку процедуру ініціювати на основі вміщеного сертифіката без взаємодії користувача. Тож останні приклади працюють без парольної фрази залежно від структури PKCS # 12. Або ви розробляєте програмне забезпечення для перенесення / оновлення магазину ключів, і вам потрібно заздалегідь вирішити, яку процедуру ініціювати на основі вміщеного сертифіката без взаємодії користувача. Тож останні приклади працюють без парольної фрази залежно від структури PKCS # 12. Або ви розробляєте програмне забезпечення для міграції / оновлення магазину ключів, і вам потрібно заздалегідь вирішити, яку процедуру ініціювати на основі вміщеного сертифіката без взаємодії користувача. Отже, останні приклади працюють без парольної фрази залежно від структури PKCS # 12.
Просто хотів це додати, бо я сам не знайшов відповіді і витратив багато часу, щоб це зрозуміти.
openssl pkcs12 -info -in keystore_file