Kann mir jemand den richtigen Weg/Befehl zum Extrahieren/Konvertieren der Zertifikatsdateien .crt
und des privaten Schlüssels .key
aus einer .pem
Datei nennen? Ich habe gerade gelesen, dass sie austauschbar sind, aber nicht wie.
Damit konnte ich pem in crt umwandeln:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
Konvertierung mit OpenSSL Mit diesen Befehlen können Sie Zertifikate und Schlüssel in verschiedene Formate konvertieren, um sie mit bestimmten Servern oder Softwaretypen kompatibel zu machen.
Konvertieren einer DER-Datei (.crt .cer .der) nach PEM openssl x509 -inform der -in Zertifikat.cer -out Zertifikat.pem
Konvertieren einer PEM-Datei in DER openssl x509 -outform der -in zertifikat.pem -out zertifikat.der
Konvertierung einer PKCS#12-Datei (.pfx .p12), die einen privaten Schlüssel und Zertifikate enthält, nach PEM openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes Sie können -nocerts hinzufügen, um nur den privaten Schlüssel auszugeben, oder -nokeys hinzufügen, um nur die Zertifikate auszugeben.
Konvertieren einer PEM-Zertifikatsdatei und eines privaten Schlüssels nach PKCS#12 (.pfx .p12) openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
PEM in CRT umwandeln (.CRT-Datei) openssl x509 -outform der -in Zertifikat.pem -out Zertifikat.crt OpenSSL PEM umwandeln
PEM in DER umwandeln openssl x509 -outform der -in zertifikat.pem -out zertifikat.der
PEM in P7B umwandeln openssl crl2pkcs7 -nocrl -zertifikatsdatei zertifikat.cer -out zertifikat.p7b -zertifikatsdatei CACert.cer
PEM in PFX umwandeln openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt OpenSSL konvertiert DER
DER in PEM umwandeln openssl x509 -inform der -in Zertifikat.cer -out Zertifikat.pem OpenSSL P7B umwandeln
P7B in PEM konvertieren openssl pkcs7 -print_certs -in Zertifikat.p7b -out Zertifikat.cer
P7B in PFX konvertieren openssl pkcs7 -print_certs -in zertifikat.p7b -out zertifikat.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer OpenSSL PFX konvertieren
PFX in PEM umwandeln openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes Rsa-Schlüssel mit OpenSSL generieren
Wenn Sie OpenSSL auf der Kommandozeile verwenden, müssen Sie zuerst einen öffentlichen und einen privaten Schlüssel erzeugen. Sie sollten diese Datei mit dem Argument -passout schützen, es gibt viele verschiedene Formen, die dieses Argument annehmen kann. openssl genrsa -out private.pem 1024
Dies erzeugt eine Schlüsseldatei namens private.pem, die 1024 Bit verwendet. Diese Datei enthält sowohl den privaten als auch den öffentlichen Schlüssel, so dass Sie den öffentlichen Schlüssel aus dieser Datei extrahieren sollten: openssl rsa -in private.pem -out public.pem -outform PEM -pubout oder
openssl rsa -in privat.pem -pubout > öffentlich.pem
oder
openssl rsa -in privat.pem -pubout -out öffentlich.pem
Sie haben nun eine Datei public.pem, die nur Ihren öffentlichen Schlüssel enthält und die Sie mit Dritten teilen können. Sie können das Ganze testen, indem Sie einfach selbst etwas mit Ihrem öffentlichen Schlüssel verschlüsseln und dann mit Ihrem privaten Schlüssel entschlüsseln, zuerst brauchen wir ein paar Daten zum Verschlüsseln:
Beispieldatei : echo 'zu viele Geheimnisse' > file.txt
Sie haben nun einige Daten in file.txt, verschlüsseln wir sie mit OpenSSL und dem öffentlichen Schlüssel: openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Dies erzeugt eine verschlüsselte Version von file.txt und nennt sie file.ssl. Wenn man sich diese Datei ansieht, ist es nur binärer Müll, nichts wirklich Nützliches für niemandem. Jetzt können Sie sie mit dem privaten Schlüssel entschlüsseln: openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
Sie haben nun eine unverschlüsselte Datei in decrypted.txt: cat decrypted.txt |output -> zu viele Geheimnisse RSA TOOLS Optionen in OpenSSL
NAME
rsa - RSA-Schlüsselverarbeitungswerkzeug
SYNOPSIS
openssl rsa [-help] [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id]
BESCHREIBUNG
Der Befehl rsa verarbeitet RSA-Schlüssel. Sie können zwischen verschiedenen Formen konvertiert und ihre Komponenten ausgedruckt werden. Beachten Sie, dass dieser Befehl das traditionelle SSLeay-kompatible Format für die Verschlüsselung privater Schlüssel verwendet: Neuere Anwendungen sollten das sicherere PKCS#8-Format mit dem Dienstprogramm pkcs8 verwenden.
BEFEHLSOPTIONEN -help
Druckt eine Benutzungsmeldung aus. -inform DER|NET|PEM Dies gibt das Eingabeformat an. Die Option DER verwendet eine ASN1 DER kodierte Form, die mit dem PKCS#1 RSAPrivateKey oder SubjectPublicKeyInfo Format kompatibel ist. Das PEM-Format ist das Standardformat: Es besteht aus dem DER-Format base64-kodiert mit zusätzlichen Kopf- und Fußzeilen. Bei der Eingabe werden auch private Schlüssel im PKCS#8-Format akzeptiert. Das NET-Format ist ein Format, das im Abschnitt NOTES beschrieben wird. -Outform DER|NET|PEM Dies gibt das Ausgabeformat an, die Optionen haben die gleiche Bedeutung wie die Option -inform. -in Dateiname Gibt den Namen der Eingabedatei an, aus der ein Schlüssel gelesen werden soll, oder die Standardeingabe, wenn diese Option nicht angegeben ist. Wenn der Schlüssel verschlüsselt ist, wird eine Passphrase abgefragt. -passin arg die Passwortquelle der Eingabedatei. Für weitere Informationen über das Format von arg siehe den Abschnitt PASS PHRASE ARGUMENTS in openssl. -out Dateiname Dies gibt den Namen der Ausgabedatei an, in die ein Schlüssel geschrieben werden soll, oder die Standardausgabe, wenn diese Option nicht angegeben ist. Wenn irgendwelche Verschlüsselungsoptionen gesetzt sind, wird eine Passphrase abgefragt. Der Name der Ausgabedatei sollte nicht mit dem Namen der Eingabedatei übereinstimmen. -passout Kennwort die Passwortquelle der Ausgabedatei. Für weitere Informationen über das Format von arg siehe den Abschnitt PASS PHRASE ARGUMENTS in openssl. -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea Diese Optionen verschlüsseln den privaten Schlüssel mit der angegebenen Chiffre, bevor er ausgegeben wird. Eine Passphrase wird abgefragt. Wenn keine dieser Optionen angegeben wird, wird der Schlüssel im Klartext ausgegeben. Das bedeutet, dass das Dienstprogramm rsa zum Einlesen eines verschlüsselten Schlüssels ohne Verschlüsselungsoption verwendet werden kann, um die Passphrase aus einem Schlüssel zu entfernen, oder durch Setzen der Verschlüsselungsoptionen kann die Passphrase hinzugefügt oder geändert werden. Diese Optionen können nur mit Ausgabedateien im PEM-Format verwendet werden. -text gibt die verschiedenen Komponenten des öffentlichen oder privaten Schlüssels zusätzlich zur verschlüsselten Version im Klartext aus. -noout diese Option verhindert die Ausgabe der verschlüsselten Version des Schlüssels. -modulus diese Option gibt den Wert des Modulus des Schlüssels aus. -check diese Option prüft die Konsistenz eines privaten RSA-Schlüssels. -pubin standardmäßig wird ein privater Schlüssel aus der Eingabedatei gelesen: mit dieser Option wird stattdessen ein öffentlicher Schlüssel gelesen. -pubout standardmäßig wird ein privater Schlüssel ausgegeben: mit dieser Option wird stattdessen ein öffentlicher Schlüssel ausgegeben. Diese Option wird automatisch gesetzt, wenn die Eingabe ein öffentlicher Schlüssel ist. -RSAPublicKey_in, -RSAPublicKey_out wie -pubin und -pubout, außer dass stattdessen das RSAPublicKey-Format verwendet wird. -engine id Die Angabe einer Engine (durch ihre eindeutige id-Zeichenkette) veranlasst rsa, zu versuchen, einen funktionalen Verweis auf die angegebene Engine zu erhalten und sie bei Bedarf zu initialisieren. Die Engine wird dann als Standard für alle verfügbaren Algorithmen festgelegt.
HINWEISE Das PEM-Format für private Schlüssel verwendet die Kopf- und Fußzeilen: -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY----- Das PEM-Format für öffentliche Schlüssel verwendet die Kopf- und Fußzeilen: -----BEGIN PUBLIC KEY----- -----END PUBLIC KEY----- Das PEM RSAPublicKey-Format verwendet die Kopf- und Fußzeilen: -----BEGIN RSA PUBLIC KEY----- -----END RSA PUBLIC KEY----- Das NET-Format ist ein mit älteren Netscape-Servern und Microsoft IIS-Schlüsseldateien kompatibles Format, das für die Verschlüsselung ungesalzenes RC4 verwendet. Es ist nicht sehr sicher und sollte daher nur im Bedarfsfall verwendet werden. Einige neuere Versionen von IIS enthalten zusätzliche Daten in den exportierten .key-Dateien. Um diese mit dem Dienstprogramm zu verwenden, sehen Sie sich die Datei mit einem Binäreditor an und suchen Sie nach der Zeichenfolge "private-key", dann gehen Sie zurück zur Bytefolge 0x30, 0x82 (dies ist eine ASN1 SEQUENCE). Kopieren Sie alle Daten ab diesem Punkt in eine andere Datei und verwenden Sie diese als Eingabe für das Dienstprogramm rsa mit der Option -inform NET. BEISPIELE So entfernen Sie die Passphrase für einen privaten RSA-Schlüssel: openssl rsa -in key.pem -out keyout.pem Um einen privaten Schlüssel mit Triple-DES zu verschlüsseln: openssl rsa -in key.pem -des3 -out keyout.pem Um einen privaten Schlüssel vom PEM- ins DER-Format zu konvertieren: openssl rsa -in key.pem -outform DER -out keyout.der So geben Sie die Komponenten eines privaten Schlüssels auf der Standardausgabe aus: openssl rsa -in key.pem -text -noout Um nur den öffentlichen Teil eines privaten Schlüssels auszugeben: openssl rsa -in key.pem -pubout -out pubkey.pem Ausgabe des öffentlichen Teils eines privaten Schlüssels im RSAPublicKey-Format: openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
So extrahieren Sie den Schlüssel und das Zertifikat aus einer pem-Datei:
openssl pkey -in foo.pem -out foo.key
Eine andere Methode, den Schlüssel zu extrahieren...
openssl rsa -in foo.pem -out foo.key
openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert
openssl x509 -in foo.pem -outform DER -out first-cert.der