Różnica między certyfikatami .pfx i .cert

Jaka jest różnica między .pfx a .cert pliki certyfikatów?

Czy rozpowszechniamy .pfx lub .cert w celu uwierzytelnienia klienta?

Komentarze

Odpowiedź

Istnieją dwa obiekty: klucz prywatny , który jest własnością serwera , zachowuje tajemnicę i używa do otrzymywania nowych połączeń SSL; oraz klucz publiczny , który jest matematycznie powiązany z kluczem prywatnym i oznaczony jako „publiczny”: jest wysyłany do każdego klienta w ramach początkowych kroków połączenia.

certyfikat jest nominalnie kontenerem dla klucza publicznego. Zawiera klucz publiczny, nazwę serwera, dodatkowe informacje o serwerze oraz podpis obliczony przez urząd certyfikacji (CA). Gdy serwer wysyła swój klucz publiczny do klienta, w rzeczywistości wysyła swój certyfikat wraz z kilkoma innymi certyfikatami (certyfikat zawierający klucz publiczny urzędu certyfikacji, który podpisał jego certyfikat, oraz certyfikat urzędu certyfikacji, który podpisał urząd certyfikacji certyfikat itd.). Certyfikaty są z natury obiektami publicznymi.

Niektórzy używają terminu „certyfikat” do oznaczenia zarówno certyfikatu, jak i klucza prywatnego; jest to częste źródło nieporozumień. Osobiście trzymam się ścisła definicja, dla której certyfikat jest podpisanym kontenerem tylko dla klucza publicznego.

Plik .pfx to Archiwum PKCS # 12 : worek, który może zawierać wiele obiektów z opcjonalnym zabezpieczeniem hasłem; ale zazwyczaj archiwum PKCS # 12 zawiera certyfikat (prawdopodobnie z wybranym zestawem certyfikatów CA) i odpowiedni klucz prywatny.

Z drugiej strony .cert (lub .cer lub

) zwykle zawiera pojedynczy certyfikat, sam i bez żadnego opakowania (bez klucza prywatnego, bez ochrony hasłem, tylko certyfikat).

Komentarze

  • Podczas uwierzytelniania klienta wymagamy zainstalowania certyfikatu klienta ssl w przeglądarce klienta. Czy to plik .pfx czy .cert?
  • Certyfikaty są danymi publicznymi; wszyscy je mają. Ale uwierzytelnianie klienta polega na tym, aby klient zrobił coś, co tylko to może zrobić; więc klient musi wiedzieć coś, co nie jest publiczne i że ' jest kluczem prywatnym. Dlatego klient musi mieć klucz prywatny wraz z certyfikatem; jeśli klucz został wygenerowany z przeglądarki klienta, oczekiwana konfiguracja polega na zaimportowaniu go do klienta wraz z certyfikatem. Dlatego plik .pfx.
  • Mam plik .pfx z serwera IIS, na którym jest zainstalowany mój certyfikat. Czy to jest plik .pfx, który powinien być rozpowszechniany? Ponieważ CA dostarczył plik .cert zawierający klucze, które zostały zainstalowane na serwerze.
  • @ Xsecure123 nie; istnieją ' dwa scenariusze tutaj – a Tomasz odpowiadał tylko o autoryzację klienta (gdzie każdy klient ma ' własny prywatny certyfikat do udowodnić swoją tożsamość). – Wygląda na to, że ' robisz coś innego – wygląda na to, że ' używasz certyfikatu z podpisem własnym w IIS i klienci nie ' mu nie ufają. – W takim przypadku należy przekazać klientom plik .cer z serwera. – ponieważ klienci potrzebują tylko klucza publicznego, aby zaufać serwerowi. – Jeśli mają również klucz prywatny, mogą podszyć się pod serwer lub odszyfrować jego ruch ', a ' s nie coś, czego chcesz.
  • @ BrainSlugs83: Co masz na myśli mówiąc o prywatnym certyfikacie. Thomas wspomniał, że certyfikaty są danymi publicznymi. Czy możesz to rozwinąć?

Odpowiedź

Wiem, że to jest wątek sprzed roku, ale dla przyszłych czytelników , jak wspomniano powyżej, nie, nie rozpowszechniasz pliku .pfx, ponieważ jest to plik zawierający klucz prywatny. Możesz wyodrębnić i rozpowszechnić certyfikat (który jest publiczny) z pliku .pfx za pomocą metody opisanej tutaj: https://stackoverflow.com/questions/403174/convert-pfx-to-cer

Komentarze

  • Gdzie należy bezpiecznie przechowywać plik pfx na serwerze? Oczywiście nie ' nie chcesz innej aplikacji korzystającej z Twojego pliku PFX, ale nie ' nie sądzę, że ' chciałbym też przechowywać go w mojej aplikacji.Czy mógłbyś po prostu zaimportować go do menedżera certyfikatów maszyny i uzyskać do niego dostęp programowy?
  • Zarządzanie kluczami prywatnymi @Matt to cały temat sam w sobie. Niektóre odpowiednie odpowiedzi można znaleźć tutaj i tutaj (druga ' nie jest ściśle związane z plikami PFX, ale wciąż jest nowatorskie). Sam plik PFX nie ' nie musi być przechowywany na serwerze (tj. Jeśli ' ponownie używasz IIS7, ' d zaimportuj PFX; jeśli nie, ' d wyodrębnij klucz prywatny cert & z PFX do własnych plików).

Odpowiedz

Co jest różnica między plikami certyfikatów .pfx i .cert?

Odpowiedź udzielona przez @Thomas Pornin jest całkiem dobra.

Czy rozpowszechniamy .pfx lub .cert do uwierzytelniania klienta?

To zależy od używanego procesu.

Typowy proces konfigurowania klienta zewnętrznego do uwierzytelniania przy użyciu certyfikatu jest następujący: 1) klient generuje asymetryczną parę kluczy (klucze publiczny i prywatny); 2) klient generuje żądanie podpisania certyfikatu dla klucza publicznego i przesyła je do serwera; 3) serwer podpisuje klucz publiczny i zwraca ten podpis (” certyfikat „) do klienta; 4) klient przechowuje klucz prywatny wraz z tym certyfikatem w swoim magazynie kluczy. Teraz, gdy klient łączy się z serwerem, prezentowany jest certyfikat, a klient jest uwierzytelniany.

W powyższym scenariuszu ” .cert jest odsyłany z powrotem do klienta.

Wewnętrznie wiele organizacji wykonuje ten proces dla swoich pracowników. W takiej sytuacji zachodzi następująca sytuacja: personel IT generuje parę kluczy publiczny i prywatny dla pracownika wraz z żądaniem podpisania certyfikatu. Następnie podpisują klucz publiczny (za pomocą swojego prywatnego urzędu certyfikacji) i umieszczają wynikowy certyfikat wraz z odpowiednim kluczem prywatnym i wszystkimi certyfikatami pośredniego urzędu certyfikacji (” łańcuch certyfikatów „), w magazynie kluczy użytkownika.

W tym scenariuszu ” .pfx ” (lub ” .pem „) byłby odpowiedni, ponieważ zawierałby wszystkie elementy potrzebne do uwierzytelnienia klienta: prywatny klucz, certyfikat i łańcuch certyfikatów.

Wyszukaj ” Certificate Auto-Enrollment „, aby znaleźć sposób aby zautomatyzować ten proces dla użytkowników i urządzeń w przedsiębiorstwie.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *