Die Leute sagten immer -
Zertifikat im X.509-Standardformat gespeichert. Dieses Zertifikat enthält Informationen über den Eigentümer des Zertifikats sowie öffentliche und private Schlüssel.
pfx - steht für Personal Exchange Format. Es wird verwendet, um öffentliche und private Objekte in einer einzigen Datei auszutauschen. Eine pfx-Datei kann aus einer CER-Datei erstellt werden. Kann auch zum Erstellen eines Software Publisher-Zertifikats verwendet werden.
** habe ref von diesem Link bekommen Was ist der Unterschied zwischen einer cer-, pvk- und pfx-Datei? ** **.
Aber niemand sagt, wann wir die CERT-Datei und wann wir die PFX-Datei verwenden sollen. Wenn möglich, besprechen Sie bitte die Situation, wann wir uns für eine CERT-Datei entscheiden sollten und wann wir uns für eine PFX-Datei entscheiden sollten. Vielen Dank.
quelle
Antworten:
Ein PFX enthält sowohl den öffentlichen als auch den privaten Schlüssel für das zugehörige Zertifikat (geben Sie diesen NIEMALS außerhalb Ihrer Organisation frei). Es kann für TLS / SSL auf der Website, zum digitalen Signieren von Nachrichten oder Autorisierungstoken oder zur Authentifizierung bei einem Partnersystem verwendet werden. Eine CER-Datei enthält nur den öffentlichen Schlüssel (dies ist der Austausch mit Integrationspartnern). Es kann zum Überprüfen von Token oder Clientauthentifizierungsanforderungen verwendet werden und wird von einem HTTP-Client von einem Server im SSL-Handshake empfangen.
quelle
2 x Szenarien, die etwas anders funktionieren:
SZENARIO 1:
Webbrowser (Client), der über HTTPS über SSL auf die Webseite (Server) zugreift.
Der Server verfügt über die .PFX-Datei, die beide Schlüssel enthält. Der Client stellt eine Verbindung zu einer Website auf dem Server her und sendet im Rahmen des SSL-Handshakes eine Kopie seines öffentlichen Schlüssels (.CER-Datei) an den Client. Der Client generiert dann einen "SESSION-Key" und verschlüsselt ihn mit dem vom Server empfangenen öffentlichen Schlüssel. Der Sitzungsschlüssel wird dann an den Server zurückgesendet und entschlüsselt, um seine Authentizität zu bestätigen. Bei Erfolg teilen sich sowohl der Client als auch der Server jetzt den "Sitzungsschlüssel" für die Kommunikation mit symmetrischer Verschlüsselung (dh sowohl Client als auch Server verschlüsseln und entschlüsseln jetzt alle Nachrichten untereinander mit demselben Sitzungsschlüssel. All dies ist der Fall Dies geschieht hinter den Kulissen im Hintergrund des Webbrowsers, zwischen dem Zeitpunkt, an dem Sie die URL in die Adressleiste eingeben, und dem Erscheinen der Webseite.
SZENARIO 2:
Anwendung (Client) stellt über SSH eine Verbindung zu einer FTP-Site (Server)
oder einem Remotedesktop
(Client zu Server) her
(beide Beispiele würden zutreffen).
In diesem Szenario sowohl der Client und Server werden ihre eigenen privaten und öffentliche Schlüsselpaare haben
(im Gegensatz zu den anderen Beispielen in diesem Thread erwähnt, dass nur erklären , wenn ein Server beiden Schlüssel hat, und der Kunde hat den öffentlichen Schlüssel nur)
Zu Erklärungszwecken - Beschriften Sie die Schlüsselpaare wie folgt:
A1 und A2 = jeweils als private und öffentliche Schlüssel des Servers
B1 und B2 = jeweils als private und öffentliche Schlüssel des Clients
Bei Verwendung dieses Modells wurde in früheren Beiträgen in diesem Thread darüber gesprochen, wann der Server über A1 und A2 ( .PFX-Datei ) verfügt und nur eine Kopie von A2 ( .CER ) für Clients freigegeben
Während FTP- oder SSH-Verbindungen (es gibt andere Beispiele) aus A1- , A2- , B1- und B2- Schlüsseln in der gesamten Client-Server-Kommunikation bestehen. Beispiel:
- Der Client stellt eine Verbindung zum FTP-Server her.
- Server Sendet eine Kopie seines öffentlichen Schlüssels (A2) an den Client.
- Der Client sendet seinen eigenen öffentlichen Schlüssel (B2) an den Server zurück und schließt den Handshake ab.
- Dies wird jetzt asymmetrische Verschlüsselung verwenden
Der Server verfügt jetzt über A1 ( sein eigenes privates ), A2 ( sein eigenes öffentliches ) und eine Kopie von B2 ( das öffentliche ) des Clients. Der
Client hat jetzt B1 ( sein eigenes privates ), B2 ( sein eigenes öffentliches ) und eine Kopie von A1 ( das eigene ) Öffentlich )
Client-zu-Server-Kommunikation: Der
Client verwendet A2 (öffentlicher Serverschlüssel), um für den Server gebundene Nachrichten zu verschlüsseln. Der Server entschlüsselt sie mit A1 (privater Serverschlüssel).
Server-zu-Client-Kommunikation: Der
Server verwendet B2 (öffentlicher Client-Schlüssel), um die für den Client gebundene Nachricht zu verschlüsseln. Der Client entschlüsselt sie mit B1 (privater Client-Schlüssel).
In Bezug auf die Dateitypen .CER und .PFX verfügt der Server über eine eigene .PFX-Datei, die nicht außerhalb Ihrer Organisation verteilt werden sollte. Stattdessen sollten Sie die .CER-Datei an Clients verteilen.
Weitere Informationen finden Sie hier:
https://www.digicert.com/ssl-cryptography.htm
und hier:
/server/107433/why-does-a-ssh-public-key-sit-on-the-server-and-not-with-the-client
quelle
Nach meiner Erfahrung (es ist nicht so umfangreich, wie ich es gerne hätte) verwende ich eine pfx-Datei, wenn ich die https-Bindung auf einem IIS-Server konfiguriere (da diese sowohl den öffentlichen als auch den privaten Schlüssel enthält, können Sie nur diese Datei verwenden). Eine Cer-Datei ist (meistens) nur der öffentliche Teil des Schlüsselpaars. Sie müssen sie in Verbindung mit einer .key-Datei verwenden, wenn Sie den SSL-Verkehr auf einem Nginx- oder Apache-Server konfigurieren.
Soweit ich weiß, gibt es keine schwierigen Gründe mehr, den einen oder anderen zu verwenden.
quelle
Wie bereits erwähnt, handelt es sich um Äpfel und Orangen, da die cer-Datei nur der öffentliche Schlüssel ist, die pfx-Datei jedoch sowohl öffentliche als auch private Schlüssel enthält.
Eine fairere Frage wäre also, wann Sie eine pfx-Datei im Gegensatz zu einer pem-Datei verwenden möchten. Angesichts der Tatsache, dass pfx-Dateien als zu komplex kritisiert wurden, könnte eine faire Antwort auf Ihre zweite Frage lauten: Sie möchten eine pfx-Datei nur dann verwenden, wenn Sie IIS ausführen und ihre Konfiguration absolut nichts anderes zulässt .
Quelle: https://en.wikipedia.org/wiki/PKCS_12 (Die referenzierte Fußnote ist ein Artikel von Peter Gutmann.)
quelle
SSL verwendet asynchrone Verschlüsselung. Dies bedeutet, dass ein Schlüssel (der private Schlüssel) an den Server übergeben wird, der das Schlüsselpaar "besitzt", während der andere Schlüssel (der öffentliche Schlüssel) frei verteilt wird.
Es wird als asynchron bezeichnet, da mit dem privaten Schlüssel verschlüsselte Daten nur mit dem öffentlichen Schlüssel entschlüsselt werden können, während mit dem öffentlichen Schlüssel verschlüsselte Daten nur mit dem privaten Schlüssel entschlüsselt werden können. Wenn Sie also etwas sicher an den Eigentümer senden möchten, verschlüsseln Sie es mit seinem privaten Schlüssel und er ist der einzige, der es entschlüsseln kann. Wenn der Eigentümer nachweisen möchte, dass er etwas gesendet hat, verschlüsselt er es mit dem privaten Schlüssel, und jeder, der über den öffentlichen Schlüssel verfügt, kann es entschlüsseln. (Sobald die Zertifikate installiert sind, erfolgt dies normalerweise hinter den Kulissen über den Browser oder das E-Mail-Tool.)
Da der Eigentümer diesen privaten Schlüssel privat halten möchte, wird er passwortgeschützt und NUR an den Eigentümer-Server weitergegeben (häufig in einer PFX- oder P12-Datei). Der öffentliche Schlüssel wird jedoch frei verteilt (häufig in einer CER-Datei).
quelle