Jaka jest różnica między plikiem cer, pvk i pfx?

203

Jaka jest różnica między plikiem cer, pvk i pfx? Jakie pliki przechowuję i które mam przekazać moim kontrahentom?

Jonathan Allen
źródło
Również [1] , [2] , [3]
Pacerier

Odpowiedzi:

142

System Windows używa rozszerzenia .cer dla certyfikatu X.509. Mogą być w postaci „binarnej” (ASN.1 DER) lub mogą być kodowane w Base-64 i mieć zastosowany nagłówek i stopkę (PEM); Windows rozpozna albo. Aby zweryfikować integralność certyfikatu, musisz sprawdzić jego podpis przy użyciu klucza publicznego wystawcy ... który z kolei jest innym certyfikatem.

System Windows używa pliku .pfx dla pliku PKCS # 12. Ten plik może zawierać różne informacje kryptograficzne, w tym certyfikaty, łańcuchy certyfikatów, certyfikaty głównego urzędu i klucze prywatne. Jego zawartość można chronić kryptograficznie (za pomocą haseł), aby zachować prywatność kluczy prywatnych i zachować integralność certyfikatów głównych.

System Windows używa pliku .pvk do pliku klucza prywatnego. Nie jestem pewien, jaki standard (jeśli w ogóle) stosuje dla nich Windows. Mam nadzieję, że są to klucze zakodowane w PKCS # 8. Emmanuel Bourg informuje, że są to zastrzeżone formaty. Część dokumentacji jest dostępna.

Nigdy nie powinieneś ujawniać swojego klucza prywatnego. Są one zawarte w plikach .pfx i .pvk.

Zasadniczo wymieniasz tylko swój certyfikat (.cer) i certyfikaty wszystkich pośrednich wystawców (tj. Certyfikaty wszystkich swoich urzędów certyfikacji, z wyjątkiem głównego urzędu certyfikacji) z innymi podmiotami.

erickson
źródło
7
Pliki PVK nie są w PKCS # 8, jest to zastrzeżony format. Zobacz drh-consultancy.demon.co.uk/pvk.html
Emmanuel Bourg
poszukaj narzędzia pvk2pfx.exe w zestawach SDK systemu Windows
BozoJoe
@erickson, Jaki jest sens wynalezienia .pvk? Czy .pfx nie wystarczy?
Pacerier,
@Pacerier Tak, .pfx wystarczy. Nie jestem pewien, jaki był cel .pvk; Mogę tylko zgadywać, że został wymyślony w nieświadomości.
erickson,
55

Na platformie Windows te typy plików są używane do informacji o certyfikacie. Zwykle używany w przypadku certyfikatu SSL i infrastruktury klucza publicznego (X.509).

  • Pliki CER: Plik CER służy do przechowywania certyfikatu X.509. Zwykle używany do certyfikacji SSL w celu weryfikacji i identyfikacji bezpieczeństwa serwerów internetowych. Plik zawiera informacje o właścicielu certyfikatu i kluczu publicznym. Plik CER może być binarny (ASN.1 DER) lub zakodowany przy użyciu Base-64 z dołączonym nagłówkiem i stopką (PEM), Windows rozpozna jeden z tych układów.
  • Pliki PVK: oznacza klucz prywatny. Windows używa plików PVK do przechowywania kluczy prywatnych do podpisywania kodu w różnych produktach Microsoft. PVK jest zastrzeżonym formatem.
  • Pliki PFX Personal Exchange Format, to plik PKCS12. Zawiera różnorodne informacje kryptograficzne, takie jak certyfikaty, certyfikaty główne, łańcuchy certyfikatów i klucze prywatne. Jest chroniony kryptograficznie hasłami, aby zachować prywatność kluczy prywatnych i zachować integralność certyfikatów głównych. Plik PFX jest także używany w różnych produktach Microsoft, takich jak IIS.

Więcej informacji na stronie: Pliki certyfikatów: .Cer x .Pvk x .Pfx

rahul_pratap
źródło
4
Pliki Cer: .... „plik zawiera informacje o właścicielu certyfikatu oraz kluczach certyfikatów publicznych i prywatnych” ... jest niepoprawny. Jak zauważył Erickson w swojej odpowiedzi: zawiera ona tylko informacje o kluczu publicznym. Plik .cer z kluczami prywatnymi i publicznymi byłby bezużyteczny.
thor_hayek
1
To jest źle. Plik .Cer nie zawiera żadnych kluczy prywatnych. Popraw swoją odpowiedź.
ANewGuyInTown
36

Oto moje osobiste, bardzo skrócone notatki, o ile ten temat dotyczy mnie obecnie, dla wszystkich zainteresowanych:

  • Zarówno PKCS12, jak i PEM mogą przechowywać całe łańcuchy certyfikatów: klucze publiczne, klucze prywatne i certyfikaty root (CA) .
  • .pfx == .p12 == " PKCS12 "
    • w pełni zaszyfrowane
  • .pem == .cer == .cert == „ PEM
    • base-64 (string) zakodowany X509 cert (binarny) z nagłówkiem i stopką
      • base-64 jest w zasadzie tylko ciągiem „A-Za-z0-9 + /” używanym do reprezentowania 0-63, 6 bitów binarnych na raz, w sekwencji, czasem z 1 lub 2 znakami „=” na samym kończą się, gdy pozostaną resztki (znaki „=” będąc ”wypełniają / śmieci / ignorują / wyrzucają”)
      • nagłówek i stopka to coś w stylu „----- ROZPOCZNIJ CERTYFIKAT -----” i „----- ZAKOŃCZ CERTYFIKAT -----” lub „----- ROZPOCZNIJ SZYFROWANY KLUCZ PRYWATNY --- - „i” ----- ZAKOŃCZ SZYBKO PRYWATNY KLUCZ ----- ”
    • Windows rozpoznaje .cer i .cert jako pliki cert
  • .jks == " Java Key Store "
    • tylko format pliku specyficzny dla Java, którego używa API
      • Pliki .p12 i .pfx mogą być również używane z interfejsem API JKS
  • Magazyny zaufania ” zawierają publiczne, zaufane certyfikaty root (CA) , podczas gdy „ Identity / Key Store ” zawierają prywatne certyfikaty tożsamości; jednak pod względem plików są takie same.
Andrzej
źródło
Więc gdzie jest zdefiniowany plik .pvk?
zwcloud
@zwcloud Dałem to, co wtedy wiedziałem. Inne odpowiedzi to dają.
Andrew
18

Niedawno natknąłem się na coś takiego ... sprawdź to na msdn (zobacz pierwszą odpowiedź)

w podsumowaniu:

.cer - certyfikat przechowywany w standardowym formacie X.509. Ten certyfikat zawiera informacje o właścicielu certyfikatu ... wraz z kluczami publicznymi i prywatnymi.

.pvk - pliki służą do przechowywania kluczy prywatnych do podpisywania kodu. Możesz także utworzyć certyfikat na podstawie pliku klucza prywatnego .pvk.

.pfx - oznacza osobisty format wymiany. Służy do wymiany publicznych i prywatnych obiektów w jednym pliku. Plik pfx można utworzyć z pliku .cer. Można go również użyć do utworzenia certyfikatu wydawcy oprogramowania .

Podsumowałem informacje ze strony na podstawie sugestii z komentarzy.

Ryan Ferretti
źródło
2
Polecam zacytowanie lub podsumowanie połączonej zawartości oprócz samego linku. W ten sposób oboje udzielisz odpowiedniego kredytu i uchronisz nas przed utratą informacji przy następnym przeprojektowaniu witryny przez MS.
Jonathan Allen
Widziałem ten link, ale nie w pełni odpowiada na pytanie.
Jonathan Allen
15
Ponadto niektóre informacje w łączu są nieprawidłowe. Na przykład nie można wyodrębnić klucza prywatnego z certyfikatu. Oczywiście.
erickson
Do powyższego komentarza nie chodzi o ekstrakcję. Po prostu nie ma sensu mieć kluczy prywatnych w plikach .cer. Plik .cer ma być udostępniany zewnętrznemu światu, więc przenosi tylko klucz publiczny.
Rajiv