przekonwertować format pfx na p12

119

Muszę wyeksportować .pfxcertyfikat formatu (z systemu Windows mmc) do .p12, aby użyć go w innej aplikacji. Nie mogę znaleźć sposobu, żeby to zrobić. Czy ktoś może zaproponować metodę?

Tom Squires
źródło

Odpowiedzi:

202

.p12i .pfxoba są plikami PKCS # 12. Czy coś mi brakuje?

Czy próbowałeś zmienić nazwę eksportowanego .pfxpliku, aby miał .p12rozszerzenie?

jglouie
źródło
9
Sprawia, że ​​zastanawiasz się, dlaczego są to dwa różne rozszerzenia plików, jeśli tak naprawdę są tym samym pod maską.
BrainSlugs83
29
Powód, dla którego istnieją dwa rozszerzenia plików, jest historyczny. PFX był rozszerzeniem Microsoftu, podczas gdy P12 był rozszerzeniem Netscape. Oba formaty zostały teraz dostosowane tak, aby były identyczne, co oznacza, że ​​programiści mogą używać przestrzeni nazw .NET System.Security.Cryptography.X509Certificates do pracy z oboma z nich. Więcej informacji znajdziesz tutaj .
SnapShot
6
Rozszerzenie nazwy plików PKCS # 12 to „.p12” lub „.pfx”. Microsoft „PFX” spotkał się z ostrą krytyką, że jest jednym z najbardziej złożonych protokołów kryptograficznych. PKCS # 12 jest następcą „PFX” firmy Microsoft. PKCS # 12 to jeden z rodziny standardów zwanych Public-Key Cryptography Standards (PKCS) opublikowanych przez RSA Laboratories.
AKS
1
zmiana nazwy nie zawsze działa, ponieważ. na przykład jeśli używasz SoapUI i przetestujesz uwierzytelnianie dwukierunkowe, nie powiedzie się. p12 i pfx mają historię z powrotem do Netscape i IE. są PRAWIE tymi samymi, ale nie identycznymi plikami. więc niektóre aplikacje mogą rozumieć zarówno bez względu na rozszerzenie, a inne potrzebują w 100% kompatybilnego, ważnego p12, takiego jak SoapUI
M.Hefny
10

Miałem problem z plikiem .pfx z openconnect. Zmiana nazwy nie rozwiązała problemu. Użyłem narzędzia keytool, aby przekonwertować go na .p12 i zadziałało.

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx

W moim przypadku hasło do nowego pliku (nowy.p12) musiało być takie samo jak hasło do pliku .pfx.

user3113045
źródło
2
Nie zadziałało, nawet jeśli użyłem tego samego hasła dla obu. otrzymano błąd „błąd narzędzia keytool: java.io.IOException: Nieprawidłowy format magazynu kluczy”
John Smith
5

Jeśli szukasz szybkiego i ręcznego procesu z interfejsem użytkownika. Zawsze używam Mozilla Firefox do konwersji z PFX na P12. Najpierw zaimportuj certyfikat do przeglądarki Firefox (Opcje> Prywatność i bezpieczeństwo> Wyświetl certyfikaty ...> Importuj ...). Po zainstalowaniu wykonaj eksport, aby utworzyć plik P12, wybierając nazwę certyfikatu w Menedżerze certyfikatów, a następnie kliknij opcję Kopia zapasowa ... i wprowadź nazwę pliku, a następnie wprowadź hasło.

Paul Chan
źródło
4

To raczej kontynuacja odpowiedzi jglouie.

Jeśli używasz openssl do konwersji certyfikatu PKCS # 12 na publiczne / prywatne klucze PEM, nie ma potrzeby zmiany nazwy pliku. Zakładając, że plik nosi nazwę cert.pfx, następujące trzy polecenia utworzą publiczny klucz PEM i zaszyfrowany prywatny klucz PEM:

openssl pkcs12 -in cert.pfx     -out cert.pem     -nodes -nokeys
openssl pkcs12 -in cert.pfx     -out cert_key.pem -nodes -nocerts
openssl rsa    -in cert_key.pem -out cert_key.pem -des3

Pierwsze dwa polecenia mogą monitować o hasło importu. Będzie to hasło dostarczone z plikiem PKCS # 12.

Trzecie polecenie pozwoli ci określić hasło szyfrowania dla certyfikatu. To jest to, co wpiszesz podczas korzystania z certyfikatu.

Keith Hanlan
źródło
Pierwsze polecenie nadpisuje drugie, więc może po prostu zrób krok 2 i 3. FYI dla czytelników, Des3 jest domyślnym szyfrowaniem klucza prywatnego.
goodguys_activate
1

Uruchom to polecenie, aby zmienić .certplik na .p12:

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt 

Gdzie server.keyjest klucz serwera i server.certjest to certyfikat wystawienia urzędu certyfikacji lub plik certyfikatu z podpisem własnym.

kishore tiwari
źródło