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.

Mark Carpenter
źródło

Odpowiedzi:

90

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

Andrew Cox
źródło
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
Berk D. Demir
źródło
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.
Ian Gallagher
źródło
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).

kingPuppy
źródło
Niewiele szybciej, ponieważ nadal musisz otworzyć certmgr.msc, aby go wyeksportować ...
Pacerier,
0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
Giacomo1968
źródło