Skillnad mellan .pfx- och .cert-certifikat

Vad är skillnaden mellan .pfx och .cert certifikatfiler?

Distribuerar vi .pfx eller .cert för klientautentisering?

Kommentarer

Svar

Det finns två objekt: privat nyckel , vilket är vad servern äger , håller hemligt och använder för att ta emot nya SSL-anslutningar; och offentlig nyckel som är matematiskt länkad till den privata nyckeln och gjort ”offentlig”: den skickas till varje klient som en del av de första stegen i anslutningen.

certifikat är nominellt en behållare för den offentliga nyckeln. Den innehåller den offentliga nyckeln, servernamnet, lite extra information om servern och en signatur beräknad av en certifieringsmyndighet (CA). När servern skickar sin offentliga nyckel till en klient skickar den faktiskt sitt certifikat med några andra certifikat (certifikatet som innehåller den offentliga nyckeln till den certifikatutfärdare som undertecknade sitt certifikat och certifikatet för den certifikatutfärdare som undertecknade CA: n certifikat och så vidare). Certifikat är inneboende offentliga objekt.

Vissa använder termen ”certifikat” för att beteckna både certifikatet och den privata nyckeln. Det här är en vanlig källa till förvirring. Jag personligen håller fast vid den strikta definition för vilken certifikatet endast är den signerade behållaren för den offentliga nyckeln.

En .pfx -fil är en PKCS # 12-arkiv : en påse som kan innehålla många objekt med valfritt lösenordsskydd, men vanligtvis innehåller ett PKCS # 12-arkiv ett certifikat (eventuellt med en uppsättning CA-certifikat) och motsvarande privatnyckel.

Å andra sidan en .cert (eller .cer eller

) -fil innehåller vanligtvis ett enda certifikat, ensam och utan någon omslagning (ingen privat nyckel, inget lösenordsskydd, bara certifikatet).

Kommentarer

  • När vi gör klientautentisering kräver vi att ssl-klientcertifikat installeras i klientens webbläsare. Är den här .pfx-filen eller .cert-filen?
  • Certifikat är offentliga data; alla har dem. Men klientautentisering handlar om att låta klienten göra något som bara som klienten kan göra; så att klienten måste veta något som inte är offentligt och att ’ är den privata nyckeln. Således måste klienten ha en privat nyckel tillsammans med sitt certifikat. om nyckeln genererades från klientens webbläsare är den förväntade installationen att importera den till klienten tillsammans med certifikatet. Därför en .pfx-fil.
  • Jag har fått .pfx-fil från IIS-servern där mitt certifikat är installerat. Är det här .pfx-filen som ska distribueras? Eftersom CA tillhandahöll .cert-fil inklusive nycklar som installerades på servern.
  • @ Xsecure123 no; det finns ’ två scenarier här – och Thomas svarade bara för klientautentisering (där varje klient har det ’ sitt eget privata certifikat till bevisa sin egen identitet). – Det låter som om du ’ gör något annat – det låter som om du ’ använder ett självsignerat certifikat i IIS, och klienterna litar inte på ’. – I så fall bör du ge klienterna en .cer-fil från servern. – eftersom klienterna bara behöver den offentliga nyckeln för att lita på servern. – Om de också har den privata nyckeln kan de imitera servern eller dekryptera den ’ s trafik, och att ’ s inte något du vill ha.
  • @ BrainSlugs83: Vad menar du med privat cert. Thomas nämnde att certifikat är offentliga uppgifter. Kan du snälla utarbeta?

Svar

Jag vet att det här är en årig tråd, men för framtida läsare , som nämnts ovan, nej du distribuerar inte .pfx-filen eftersom det är filen som innehåller den privata nyckeln. Du kan extrahera och distribuera certifikatet (som är offentligt) från .pfx-filen via den metod som beskrivs här: https://stackoverflow.com/questions/403174/convert-pfx-to-cer

Kommentarer

  • Var ska du lagra pfx-filen säkert på servern? Uppenbarligen skulle du inte ’ inte vill ha en annan applikation med din PFX-fil, men jag tror inte ’ att jag ’ vill lagra den med min applikation heller.Skulle du bara importera det till maskincertifikathanteraren och komma åt det programmatiskt?
  • @Matt privat nyckelhantering är ett helt ämne i sig. Några relevanta svar finns här och här (det senare ’ är inte strikt relevant för PFX-filer, men ändå nya). Själva PFX-filen behöver inte ’ lagras på din server (dvs. om du ’ använder IIS7, så ’ d importerar PFX; om inte, ’ d extraherar cert & privatnyckel från PFX i sina egna filer).

Svar

Vad är skillnaden mellan .pfx- och .cert-certifikatfiler?

Svaret som @Thomas Pornin gav är ganska bra.

Distribuerar vi .pfx eller .cert för klientautentisering?

Det beror på vilken process som används.

Den typiska processen för att ställa in en extern klient för att autentisera med ett certifikat är som följer: 1) klienten genererar ett asymmetriskt nyckelpar (offentliga och privata nycklar); 2) klienten genererar en begäran om certifikatsignering för den offentliga nyckeln och skickar den till servern; 3) servern signerar den offentliga nyckeln och returnerar denna signatur (” certifikat ”) till klienten; 4) klienten lagrar den privata nyckeln tillsammans med detta certifikat i sin keystore. Nu när klienten ansluter till servern presenteras certifikatet och klienten autentiseras.

I ovanstående scenario visas ett ” .cert ” skickas tillbaka till klienten.

Internt kommer många organisationer att utföra denna process för sina anställda. I denna situation inträffar följande: IT-personalen genererar det offentliga och privata nyckelparet för en anställd tillsammans med begäran om certifikatsignering. De signerar sedan den offentliga nyckeln (med hjälp av deras privata certifikatutfärdare) och placerar det resulterande certifikatet tillsammans med motsvarande privata nyckel och alla mellanliggande CA-certifikat (” certifikatkedjan ”), i användarens keystore.

I det här scenariot, en ” .pfx ” (eller ” .pem ”) skulle vara lämpligt eftersom det skulle innehålla alla objekt som behövs för klientautentisering: den privata nyckel, certifikatet och certifikatkedjan.

Sök efter ” Certifikat automatisk registrering ” för ett sätt för att automatisera denna process för dina företagsanvändare och enheter.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *