Як перерахувати сертифікати, що зберігаються у сховищі ключів PKCS12, за допомогою keytool?


Відповіді:


146

Якщо сховище ключів має тип PKCS12 ( .pfx), його потрібно вказати -storetype PKCS12(додані розриви рядків для читабельності):

keytool -list -v -keystore <path to keystore.pfx> \
    -storepass <password> \
    -storetype PKCS12

6
Якщо ви віддаєте перевагу утиліті графічного інтерфейсу, я знайшов Keystore Explorer, графічний інтерфейс із відкритим вихідним кодом для інструментів командного рядка Java keytool, jarsigner та jadtool. keystore-explorer.sourceforge.net
Девід Гарсія Гонсалес

Дякуємо за підказку @David. Приємно бачити, що проект все ще активний, на відміну від багатьох інших подібних проектів!
Джон Рікс,

відмінна порада щодо цього безкоштовного інструменту - я взагалі віддаю перевагу командним рядкам, але це дуже приємно
Ревінь

1
Чи має це працювати з ( .p12)? Я отримуюjava.io.IOException: Invalid keystore format
IgniteCoders

Це не працює із сховищем сертифікатів P12 (березень 2019 р., Найновіша версія KeyTool)
Гаральд

29

Ви також можете використовувати 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

3
Тільки сказати, що це працює і для файлів .p12. Дуже корисно, дякую!
Річ Росс,

@PhilipRego впевнений, що зможеш, просто оберни їх окремими лапками.
slm

Я хотів побачити псевдонім, який називається дружнє ім'я. Довелося використовувати "openssl pkcs12 -nodes -in </path/to/file.pfx>-passin pass: <пароль pfx>"
Домо

4

Ви можете перерахувати записи (деталі сертифікатів) за допомогою інструменту клавіш, і навіть вам не потрібно згадувати тип магазину.

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

Будь ласка, поясніть, як пояснити ваш код і як він може допомогти, щоб інші могли цим скористатися.
Amit Verma

Відповідь оновлено.
Гаррі

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.

Просто хотів це додати, бо я сам не знайшов відповіді і витратив багато часу, щоб це зрозуміти.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.