790 Stimmen

Wie erhält man eine .pem-Datei aus .key- und .crt-Dateien?

Wie kann ich eine PEM-Datei aus einem SSL-Zertifikat erstellen?

Dies sind die Dateien, die mir zur Verfügung stehen:

  • .crt
  • server.csr
  • server.key

4 Stimmen

1040voto

maxwellb Punkte 12426

Ihre Schlüssel können bereits im PEM-Format vorliegen, sind aber nur mit .crt oder .key benannt.

Beginnt der Inhalt der Datei mit -----BEGIN und Sie können sie in einem Texteditor lesen:

Die Datei verwendet base64, das im ASCII- und nicht im Binärformat lesbar ist. Das Zertifikat liegt bereits im PEM-Format vor. Ändern Sie einfach die Erweiterung in .pem.

Wenn die Datei im Binärformat vorliegt:

Für die server.crt würden Sie Folgendes verwenden

openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

Für server.key, verwenden Sie openssl rsa anstelle von openssl x509 .

Die Datei server.key ist wahrscheinlich Ihr privater Schlüssel, und die Datei .crt ist das zurückgegebene, signierte x509-Zertifikat.

Wenn es sich um einen Webserver handelt und Sie das Laden eines separaten privaten und öffentlichen Schlüssels nicht angeben können:

Möglicherweise müssen Sie die beiden Dateien miteinander verknüpfen. Verwenden Sie dazu:

cat server.crt server.key > server.includesprivatekey.pem

Ich würde empfehlen, die Dateien mit "includesprivatekey" zu benennen, um Ihnen die Verwaltung der Berechtigungen zu erleichtern, die Sie für diese Datei haben.

2 Stimmen

Überprüfen Sie das Format des server.key. Ich habe nur angenommen, dass es RSA ist. Aber wenn Sie die erste Zeile der Datei lesen, werden Sie das wahrscheinlich herausfinden.

18 Stimmen

Nur eine Vorwarnung, dass cat server.crt server.key > server.pem platziert den offenen Kommentar nicht in eine eigene Zeile, was anscheinend eine Voraussetzung ist. Die Kurierpost hat mir die Hölle heiß gemacht und ich habe Stunden gebraucht, um herauszufinden, was falsch lief.

1 Stimmen

Danke, Graham. Verschiedene Tools erzeugen die Dateien auf unterschiedliche Weise, und letztendlich ist eine gewisse Überprüfung gut. Als ich diese Schritte durchführte, endeten die Dateien zum Beispiel mit einem Zeilenumbruch.

274voto

slf Punkte 22309

Ich musste dies für einen AWS ELB tun. Nachdem ich viele Male durch den Dialog geprügelt wurde, funktionierte dies schließlich für mich:

openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem

Danke NCZ

Edit: Wie @floatingrock sagt

Vergessen Sie bei AWS nicht, dem Dateinamen den Zusatz file:// . Es wird also so aussehen:

 aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/

http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html

21 Stimmen

Vergessen Sie bei AWS nicht, dem Dateinamen den Zusatz file:// . Es wird also so aussehen: aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://~/Desktop/server.crt --private-key file://~/Desktop/private.key --path /cloudfront/static/

1 Stimmen

Der zweite Befehl hat keine Auswirkung, wenn die Eingabe eine pem-Datei ist. Wenn dies der Fall ist, benötigen Sie nur den ersten Befehl

0 Stimmen

Unglaublich! Das hat bei mir gut funktioniert! Ich habe gerade meine .key- und .crt-Dateien mit Ihren Codezeilen in .pem konvertiert und dann über die AWS-Konsole hochgeladen (kopieren/einfügen). Vielen Dank!

109voto

sth Punkte 210180

A pem Datei enthält das Zertifikat und den privaten Schlüssel. Es hängt davon ab, in welchem Format Ihr Zertifikat/Schlüssel vorliegt, aber wahrscheinlich ist es so einfach wie folgt:

cat server.crt server.key > server.pem

11 Stimmen

Achten Sie auf fehlende Zeilenumbrüche, Ihre pem-Datei könnte Zeilen wie -----END CERTIFICATE----------BEGIN CERTIFICATE----- enthalten.

34voto

rahul Punkte 331

Wenn Sie nicht möchten, dass das Programm nach einer Passphrase fragt, müssen Sie außerdem den folgenden Befehl ausführen:

openssl rsa -in server.key -out server.key

16 Stimmen

Wenn Sie eine Datei wünschen, die mit -----BEGIN RSA PRIVATE KEY----- und haben eine, die beginnt mit -----BEGIN ENCRYPTED PRIVATE KEY----- ist dies der Befehl, den Sie verwenden möchten.

1 Stimmen

Dies ist auch das, was Sie verwenden, um den Schlüssel in ein mysql-kompatibles Format zu bringen.

21voto

GOrozco58 Punkte 1132

Dies ist die beste Option zur Erstellung einer .pem-Datei

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X