Chciałem wyświetlić listę certyfikatów przechowywanych w magazynie kluczy PKCS12.
Magazyn kluczy ma rozszerzenie .pfx
Chciałem wyświetlić listę certyfikatów przechowywanych w magazynie kluczy PKCS12.
Magazyn kluczy ma rozszerzenie .pfx
Odpowiedzi:
Jeśli magazyn kluczy to PKCS12 type ( .pfx
), musisz go określić za pomocą -storetype PKCS12
(dodane znaki końca linii dla większej czytelności):
keytool -list -v -keystore <path to keystore.pfx> \
-storepass <password> \
-storetype PKCS12
.p12
)? Dostajęjava.io.IOException: Invalid keystore format
Możesz również użyć, openssl
aby osiągnąć to samo:
$ 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
Możesz wyświetlić listę wpisów (szczegóły certyfikatów) za pomocą narzędzia kluczy, a nawet nie musisz wspominać o typie sklepu.
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
W pytaniu i wszystkich odpowiedziach brakuje tego hasła, aby odczytać dane publiczne z magazynu kluczy PKCS # 12 (.pfx). To, czy potrzebujesz hasła, czy nie, zależy od tego, jak utworzono plik PKCS # 12. Możesz sprawdzić strukturę ASN1 pliku (uruchamiając go przez parser ASN1, openssl lub certutil też może to zrobić), czy dane PKCS # 7 (np. Prefiks OID 1.2.840.113549.1.7) są wymienione jako „zaszyfrowane” lub ze specyfikacją szyfrowania lub jeśli lokalizacja danych w drzewie asn1 znajduje się poniżej zaszyfrowanego węzła, nie będzie można ich odczytać bez znajomości hasła. Oznacza to, że polecenie „openssl pkcs12” zakończy się niepowodzeniem z błędami (wynik zależy od wersji). Dla tych, którzy zastanawiają się, dlaczego możesz być zainteresowany certyfikatem PKCS # 12 bez znajomości hasła. Wyobraź sobie, że masz wiele magazynów kluczy i wiele fraz fazowych i naprawdę źle radzisz sobie z ich uporządkowaniem i nie chcesz testować wszystkich kombinacji, certyfikat w pliku może pomóc ci dowiedzieć się, jakie to może być hasło. Lub tworzysz oprogramowanie do migracji / odnawiania magazynu kluczy i musisz z góry zdecydować, którą procedurę zainicjować na podstawie zawartego certyfikatu bez interakcji użytkownika. Zatem te ostatnie przykłady działają bez hasła w zależności od struktury PKCS # 12. Lub tworzysz oprogramowanie do migracji / odnawiania magazynu kluczy i musisz z góry zdecydować, którą procedurę zainicjować na podstawie zawartego certyfikatu bez interakcji użytkownika. Zatem te ostatnie przykłady działają bez hasła w zależności od struktury PKCS # 12. Lub tworzysz oprogramowanie do migracji / odnawiania magazynu kluczy i musisz z góry zdecydować, którą procedurę zainicjować na podstawie zawartego certyfikatu bez interakcji użytkownika. Zatem te ostatnie przykłady działają bez hasła w zależności od struktury PKCS # 12.
Chciałem to tylko dodać, ponieważ sam nie znalazłem odpowiedzi i spędziłem dużo czasu, aby to rozgryźć.
openssl pkcs12 -info -in keystore_file