SSL Zertifikate
-
Wie funktioniert das mit den Zertifikaten wirklich?
Was ist ist die key, scr, crt und pem?
Und was ist der eingebettete öffentliche Schlüssel?Der WebServer greift auf den Schlüssel zurück, der aus welcher Datei stammt? und nur wenn der im Schlüssel angegebene Domain-Name identisch mit dem Anruf des Clienten identisch ist, zeigt der WebBrowser keine Warnung an?
Und welche Dateien (key, scr, crt, pem) sind nun verschlüsselt und wie trotzdem zu lesen?
Ich hoffe es gibt da eine Erklärung, an der ich mich orientieren kann.
-
Die Dateiendungen sind relativ willkürlich, aber die meisten Tutorials verwenden sie so:
*.key enthält ein Paar aus Private-Key und Public-Key
*.pem ist in den meisten Tutorials identisch zu *.key, enthält aber oft keinen Passwortschutz mehr
*.csr enthält den Certificate-Signing-Request (auf Basis des Public-Keys aus *.key)Die *.csr bekommt der CA (verisign o.ä.) und man erhält zurück:
*.crt enthält das von der CA signierte ZertifikatDer Webserver muss Kenntnis von der *.crt und dem Private-Key (aus der *.key oder *.pem) haben. (Ggf. muss er noch Kenntnis von "Intermediate"-Zertifikaten haben.)
Die *.crt wird dem anfragenden Browser quasi übermittelt, die .key/.pem braucht der Webserver zum Verschlüsseln.
Für den Inhalt der Dateien wird meist eins der beiden ersten hier genannten Formate genutzt:
http://en.wikipedia.org/wiki/X.509#Certificate_filename_extensionsDer Browser sagt "Hier stimmt was nicht" u.a. wenn:
- Das Zertifikat (*.crt) abgelaufen ist
- Der aufgerufene Domainname nicht im übermittelten Zertifikat enthalten ist
- Das Zertifikat nicht überprüft werden kann (z.B. weil der Aussteller dem Browser nicht bekannt ist)
- Das Zertifikat vom CA auf eine Blacklist gesetzt wurde
- Private-Key nicht zum Zertifikat passtVerschlüsselt ist (wenn überhaupt) nur die *.key Datei.
Die .key/.pem sollte niemand jemals in die Finger bekommen.Achtung: Alles nur gefährliches Halbwissen
-
Also, man erstellt sich einen "Private-Key" (.key), dass nur Anschriftsangaben über einen beinhaltet?
Dann wird die Private-Key-Datei in die csr-Datei gesteckt, die einfach deutlich machen soll, dass es sich um eine Zertifikat-Signierungs-Anfrage handelt?Dann erhält man vom Signierer, ein signiertes Zertifikat mit der Dateiendung '.crt'.
Der Client ließt dann die crt-Datei und lässt die dort stehenden Angaben bei dem Signierer überprüfen von dem das Zertifikat angeblich ausgestellt wurde?
-
Ich habe gerade noch etwas editieren müssen
Anschriftsangaben stecken nicht in der *.key, sondern erst in der *.csr (und in der vom CA erzeugten *.crt)
(openssl z.B. kann beide Dateien im gleichen Schritt erzeugen)
-
Gut zusammengefasst.
Wenn ich diese Erklärung vor ungefähr acht Jahren schon gehabt hätte, hätte mir das unheimlich viel Zeit gespart.