Czy można przekonwertować plik .pfx (Personal Information Exchange) na plik .cer (certyfikat bezpieczeństwa)? O ile się nie mylę, czy .cer nie jest w jakiś sposób osadzony w pliku .pfx? Chciałbym jakoś go wyodrębnić, jeśli to możliwe.
Czy można przekonwertować plik .pfx (Personal Information Exchange) na plik .cer (certyfikat bezpieczeństwa)? O ile się nie mylę, czy .cer nie jest w jakiś sposób osadzony w pliku .pfx? Chciałbym jakoś go wyodrębnić, jeśli to możliwe.
Odpowiedzi:
moim zdaniem najprostszym sposobem jest zaimportowanie go, a następnie wyeksportowanie za pomocą menedżera certyfikatów w konsoli zarządzania Windows.
Pliki PFX są standardowymi pakietami wymiany informacji osobistych w formacie PKCS # 12 . Mogą zawierać dowolną liczbę kluczy prywatnych z towarzyszącymi im certyfikatami X.509 oraz łańcuch urzędów certyfikacji (zestawy certyfikatów).
Jeśli chcesz wyodrębnić certyfikaty klienta, możesz użyć narzędzia PKCS12 OpenSSL .
openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts
Powyższe polecenie wyświetli certyfikat (y) w formacie PEM. Rozszerzenie pliku „.crt” jest obsługiwane przez system macOS i Windows.
W pytaniu wspominasz o rozszerzeniu „.cer”, które jest zwykle używane w plikach zakodowanych w formacie DER. Kodowanie binarne. Najpierw wypróbuj plik „.crt”, a jeśli nie zostanie zaakceptowany, łatwo przekonwertuj go z PEM na DER:
openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Jeśli pracujesz w PowerShell, możesz użyć czegoś podobnego do poniższego, mając plik pfx InputBundle.pfx , aby utworzyć plik certyfikatu zakodowany (binarny) DER OutputCert.der :
Get-PfxCertificate -FilePath InputBundle.pfx |
Export-Certificate -FilePath OutputCert.der -Type CERT
Nowa linia została dodana dla przejrzystości, ale możesz oczywiście mieć to wszystko w jednej linii.
Jeśli potrzebujesz certyfikatu w formacie PEM zakodowanym w ASCII / Base64, możesz podjąć dodatkowe kroki, aby to zrobić, zgodnie z dokumentacją w innym miejscu, na przykład tutaj: /superuser/351548/windows-integrated-utility-to-convert -der-to-pem
Jeśli chcesz wyeksportować do innego formatu niż zakodowany w DER, możesz zmienić -Type
parametr Export-Certificate, aby używał typów obsługiwanych przez .NET, jak widać na help Export-Certificate -Detailed
:
-Type <CertType>
Specifies the type of output file for the certificate export as follows.
-- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates.
-- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate.
-- P7B: A PKCS#7 file format which can contain one or more certificates.
Chciałem dodać metodę, która moim zdaniem była najprostsza ze wszystkich.
Po prostu kliknij prawym przyciskiem myszy plik pfx, kliknij „Instaluj”, postępuj zgodnie z instrukcjami kreatora i dodaj go do sklepu (dodałem do sklepu osobistego).
W menu start wpisz certmgr.msc i przejdź do programu CertManager.
Znajdź swój certyfikat pfx (zakładki u góry to różne sklepy), kliknij przycisk eksportu i postępuj zgodnie z instrukcjami kreatora (istnieje opcja eksportu jako .CER)
Zasadniczo robi to samo, co odpowiedź Andrzeja, ale unika używania konsoli zarządzania Windows (przechodzi bezpośrednio do importu / eksportu).
openssl rsa -in f.pem -inform PEM -out f.der -outform DER