Was sind die Unterschiede zwischen .pem
, .cer
und .der
?
Soweit ich weiß, .cer
enthält öffentlichen Schlüssel. Gibt es offene Frameworks, mit denen ich meine Daten mit diesem öffentlichen Schlüssel verschlüsseln kann?
Was sind die Unterschiede zwischen .pem
, .cer
und .der
?
Soweit ich weiß, .cer
enthält öffentlichen Schlüssel. Gibt es offene Frameworks, mit denen ich meine Daten mit diesem öffentlichen Schlüssel verschlüsseln kann?
cp
Befehl tun :)
Antworten:
.pem
, .cer
Und .der
sind alle Dateierweiterungen für Dateien , die ein X.509 v3 - Zertifikat enthalten.
.der
ErweiterungDER ist die Methode zum Codieren der Daten, aus denen das Zertifikat besteht. DER selbst kann jede Art von Daten darstellen, beschreibt jedoch normalerweise ein verschlüsseltes Zertifikat oder einen CMS-Container.
Die Struktur eines Zertifikats wird in der ASN.1-Datendarstellungssprache beschrieben. BER und DER sind binäre Codierungsmethoden für Daten, die von ASN.1 beschrieben werden.
.pem
ErweiterungPEM ist eine Methode zum Codieren von Binärdaten als Zeichenfolge (ASCII-Panzerung). Es enthält eine Kopf- und eine Fußzeile (die den zu codierenden Datentyp angibt und Anfang / Ende anzeigt, wenn die Daten miteinander verkettet sind), und die Daten in der Mitte sind die Basisdaten 64. In dem Fall, dass es ein Zertifikat codiert, würde es einfach die Basis-64-Codierung des DER-Zertifikats enthalten. PEM steht für Privacy Enhanced Mail. Mail darf keine nicht codierten Binärwerte wie DER direkt enthalten.
PEM kann auch andere Arten von Daten codieren / schützen, die sich auf Zertifikate beziehen, wie z. B. öffentliche / private Schlüssel, Zertifikatanforderungen usw. Wenn der Inhalt ein allgemeines X509v3-Zertifikat ist, wird die PEM wie folgt codiert:
-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----
Beachten Sie, dass eine PEM-Datei auch eine vollständige Zertifikatkette enthalten kann, wobei die Kette mit dem Blatt- / Endzertifikat des Dienstes beginnt, gefolgt von dem Zertifikat, das sie signiert hat, normalerweise bis einschließlich des vertrauenswürdigen Stammzertifikats. Wenn Sie also Zertifikate vermissen, sollten Sie einen Blick hinter das erste werfen.
.cer
oder .crt
Erweiterung.cer
steht nur für Zertifikat. Es handelt sich normalerweise um DER-codierte Daten, aber Windows akzeptiert möglicherweise auch PEM-codierte Daten. Sie müssen sich den Inhalt ansehen (z. B. mithilfe des file
Dienstprogramms auf Posix-Systemen), um zu sehen, was sich in der Datei befindet, um 100% sicher zu sein.
In dieser Antwort finden Sie eine ausführlichere Liste der von OpenSSL unterstützten Funktionen.
Um den im Zertifikat enthaltenen öffentlichen Schlüssel zu verwenden (und durch die Signatur im Zertifikat signiert ), sollten Sie eine Bibliothek verwenden, die X.509-Zertifikate analysiert und eine RSA-Verschlüsselung durchführt. Sie können ein Tool verwenden, das die PEM-Codierung erkennt / verarbeitet, oder Sie können das Zertifikat zuerst in DER konvertieren, indem Sie die PEM-Codierung entfernen.
Die OpenSSL-Befehlszeile enthält viele Optionen zum Konvertieren zwischen PEM und DER, zum Ausdrucken von Zertifikatinformationen auf hoher Ebene oder zum Analysieren des ASN.1, um eine Ansicht auf niedriger Ebene zu erhalten.
Wie die meisten ASN.1-Strukturen beginnt das DER-codierte Zertifikat immer mit einem Byte, 30
das die Tag-Codierung eines ASN.1 ist SEQUENCE
. Wenn die Datei viele Wiederholungen enthält, ist dies in Ordnung. Es ist nur die Struktur , die streng definiert ist.
Ebenso beginnt die Basis 64 in einer PEM-codierten Datei immer mit dem Buchstaben, M
während ein ASN.1 SEQUENCE
mit einem Byte beginnt. 30
Die ersten 6 Bits sind also 001100
, was in die Zahl 12 übersetzt wird, die der Index des Buchstabens M
ist dreizehnter Buchstabe des Alphabets.