Konwertuj .pfx na .cer


155

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:


90

moim zdaniem najprostszym sposobem jest zaimportowanie go, a następnie wyeksportowanie za pomocą menedżera certyfikatów w konsoli zarządzania Windows.


5
Próbowałem to zrobić, ale kiedy wybieram eksport klucza prywatnego, otrzymuję wyłączoną opcję .cer (kodowanie DER). i narzędzie midletsigner i tak wymaga provatekey ..
— Jigar Joshi

3
Musisz zaznaczyć pole podczas importowania, które mówi „oznacz ten klucz jako eksportowalny”
— Andrew Cox

11
Jak dostać się do Menedżera certyfikatów w systemie Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
— James White

12
Łatwiejszym sposobem otwarcia menedżera certyfikatów systemu Windows jest wpisanie w wierszu polecenia „certmgr.msc”.
— Jan Derk

@AndrewCox, jest jednak jakaś różnica za kulisami między oznaczeniem go jako eksportowalnego a nie oznaczaniem go jako takiego. Czy jest to po prostu opcja interfejsu użytkownika?
— Pacerier

212

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

9
+1 za wyjaśnienie, czym jest plik, oprócz podania poleceń.
— Joshua Drake

„Błąd weryfikacji na komputerze Mac: nieprawidłowe hasło?” kiedy próbowałem. Nie znam żadnych haseł, mam tylko plik dostarczony przez dostawcę.
— Brian Knoblauch,

1
Wygląda na to, że porzucenie „-nokeys” działa, gdy próbujesz przekonwertować certyfikat z jego kluczami prywatnymi, na przykład do użytku z Fiddler
— Gert van den Berg

@Berk, poza OpenSSL, czy cmd systemu Windows ma na to jakiś sposób?
— Pacerier

45

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ć -Typeparametr 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.

Certyfikat eksportu jest jednak dostępny tylko dla niektórych wersji, takich jak Win 8.1 i Server 2012 R2. Jeśli jesteś w innej wersji, takiej jak Win 7, nie ma szczęścia!
— Deep-B

1
Powinien być obecny w Server 2012 i Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ), ale dobra uwaga na temat Windows 7 i tak dalej!
— Ian Gallagher

@IanGallagher, Jak wypada to w porównaniu z opcją OpenSSL?
— Pacerier

Jest to o wiele wygodniejsze, jeśli nie chcesz instalować rzeczy OpenSSL!
— Leonardo Herrera

25

Chciałem dodać metodę, która moim zdaniem była najprostsza ze wszystkich.

  1. 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).

  2. W menu start wpisz certmgr.msc i przejdź do programu CertManager.

  3. 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).


Niewiele szybciej, ponieważ nadal musisz otworzyć certmgr.msc, aby go wyeksportować ...
— Pacerier,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.