it-swarm.com.de

Was sind die Unterschiede zwischen .pem, .cer und .der?

Was sind die Unterschiede zwischen .pem, .cer und .der?

Soweit ich weiss, .cer enthält öffentlichen Schlüssel. Gibt es offene Frameworks, mit denen ich meine Daten mit diesem öffentlichen Schlüssel verschlüsseln kann?

50
Jacky

.pem, .cer Und .der Sind alle Dateierweiterungen für Dateien, die möglicherweise ein X.509 v3-Zertifikat enthalten.

Die Erweiterung .der

DER ist die Methode zum Codieren der Daten, aus denen das Zertifikat besteht. DER selbst könnte any Datentypen darstellen, beschreibt jedoch normalerweise ein verschlüsseltes Zertifikat oder einen CMS-Container.

Die Struktur eines Zertifikats wird mithilfe der Datenrepräsentationssprache ASN.1 beschrieben. BER und DER sind binäre Codierungsmethoden für Daten, die von ASN.1 beschrieben werden.

Die Erweiterung .pem

PEM ist eine Methode zum Codieren von Binärdaten als Zeichenfolge (ASCII-Rüstung). Es enthält eine Kopf- und eine Fußzeile (die den Typ der Daten angeben, die codiert sind, und Anfang/Ende anzeigen, wenn die Daten miteinander verkettet sind), und die Daten in der Mitte sind die Basis-64-Daten. 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 unverschlüsselten binären Werte wie DER direkt enthalten.

PEM kann auch andere Arten von Daten verschlüsseln/schützen, die sich auf Zertifikate beziehen, z. B. öffentliche/private Schlüssel, Zertifikatsanforderungen usw. Wenn der Inhalt ein gemeinsames X509v3-Zertifikat ist, wird das PEM wie folgt verschlüsselt:

-----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 möglicherweise auch eine vollständige Zertifikatskette enthält, wobei die Kette mit dem Blatt-/Endzertifikat des Dienstes beginnt, gefolgt von dem Zertifikat, das sie signiert hat, normalerweise bis zu dem vertrauenswürdigen Stammzertifikat, jedoch ohne dieses. Wenn Sie also Zertifikate vermissen, möchten Sie vielleicht einen Blick hinter die erste werfen.

Die Erweiterung .cer Oder .crt

.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. mit dem Hilfsprogramm file auf Posix-Systemen), um zu sehen, was sich zu 100% in der Datei befindet.

Andere OpenSSL-Formate

Schauen Sie sich diese Antwort an, um eine ausführlichere Liste der von OpenSSL unterstützten Funktionen zu erhalten.


Um den öffentlichen Schlüssel enthalten im Zertifikat zu verwenden (und signiert von die Signatur im Zertifikat), sollten Sie jede Bibliothek verwenden, die X.509-Zertifikate analysiert und ausführt RSA-Verschlüsselung. 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 zahlreiche Optionen zum Konvertieren zwischen PEM und DER, zum Ausdrucken von Zertifikatsinformationen auf hoher Ebene oder zum Analysieren des ASN.1, um einen Überblick über die Inhalte auf niedriger Ebene zu erhalten.

Einzelheiten

Wie die meisten ASN.1-Strukturen beginnt das DER-codierte Zertifikat immer mit einem Byte 30, Das die Tag-Codierung eines ASN.1 SEQUENCE ist. Wenn die Datei viele Wiederholungen enthält, ist dies in Ordnung. es ist nur die Struktur, die genau definiert ist.

Ebenso beginnt die Basis 64 in einer PEM-kodierten Datei immer mit dem Buchstaben M als ASN.1 SEQUENCE beginnt mit einem Byte 30, Also den ersten 6 Bits sind 001100, was sich in die Zahl 12 übersetzt, die der Index des Buchstabens M ist, des dreizehnten Buchstabens des Alphabets.

51
Maarten Bodewes