Frage

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

Dies sind die Dateien, die ich zur Verfügung haben:

  • .crt
  • server.csr
  • server.key
War es hilfreich?

Lösung

Ihr Schlüssel bereits im PEM-Format sein kann, aber nur mit .crt oder .key genannt.

Wenn der Inhalt der Datei mit -----BEGIN beginnt und Sie können es in einem Texteditor zu lesen:

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

Wenn die Datei in binär ist:

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

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

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

Die server.key ist wahrscheinlich Ihre privaten Schlüssel und die CRT-Datei wird die zurück, signiert, x509-Zertifikat.

Wenn dies für einen Web-Server ist und Sie nicht angeben können einen separaten privaten und öffentlichen Schlüssel laden:

Sie müssen die beiden Dateien verketten. Für diese Verwendung:

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

Ich würde empfehlen, Dateien mit „includesprivatekey“ zu benennen, damit Sie die Berechtigungen verwalten Sie mit dieser Datei zu halten.

Andere Tipps

Ich brauchte diese für eine AWS ELB zu tun. Nachdem sie durch den Dialog oft geschlagen, schließlich ist es das, was für mich gearbeitet:

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

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

Eine pem Datei enthält das Zertifikat und den privaten Schlüssel. Es hängt von dem Format Ihr Zertifikat / Schlüssel sind, aber es ist wahrscheinlich so einfach wie folgt aus:

cat server.crt server.key > server.pem

Außerdem, wenn Sie nicht wollen, dass es für ein Passwort fragen, dann müssen Sie den folgenden Befehl ausführen:

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

Dies ist die beste Option .pem-Datei erstellen

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

Was habe ich beobachtet, ist: Wenn Sie OpenSSL-Zertifikate zu erzeugen, fängt sie sowohl den Textteil und die Base64-Zertifikat an der crt Datei. Das strenge pem-Format sagt ( Wiki Definition ), dass die Datei beginnen und enden soll mit BEGIN und END.

  

.pem - (Privacy Enhanced Mail) Base64 codiert DER Zertifikat,   eingeschlossen zwischen "----- BEGIN CERTIFICATE -----" und „----- END   CERTIFICATE ----- "

So für einige Bibliotheken (Ich traf dies in Java), die strenge pem-Format erwarten würde die erzeugte crt die Validierung als 'ungültig pem-Format' nicht bestanden.

Auch wenn Sie die Zeilen kopieren oder grep mit BEGIN / END CERTIFICATE und es in einer cert.pem Datei einfügen, sollte es funktionieren.

Hier ist, was ich tue, nicht sehr sauber, aber für mich funktioniert, im Grunde filtert sie den Text ausgehend von Zeile beginnen:

  

grep -A 1000 BEGIN cert.crt> cert.pem

Ich habe versucht, von GoDaddy zu gehen Motor App. Was den Trick wurde mit dieser Zeile:

openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr

Genau wie es ist, aber Namen mit meinen Domain-Namen zu ersetzen (nicht, dass es wirklich noch wichtig)

Und ich alle Fragen beantworten im Zusammenhang mit gemeinsamen Namen / Organisation als www.name.com

Dann öffnete ich die csr, kopierte es, klebte es in GoDaddy, dann heruntergeladen, es entpackt, navigiert die entpackten Ordner mit dem Terminal und eingegeben:

cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt

Dann habe ich diese Anweisungen von Ärger mit Google Apps benutzerdefinierten Domain SSL , die waren:

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

genau wie es ist, mit Ausnahme statt privateKey.key ich verwendet name.unencrypted.priv.key, und statt www_mydomain_com.crt, habe ich name.crt

Dann lud ich die public.pem auf die Admin-Konsole für das „PEM codierte X.509-Zertifikat“, und lud das private.pem für den „Unverschlüsselte PEM kodierten privaten RSA-Schlüssel“ ..

.. Und das schließlich arbeitete.

Der Versuch, ein GoDaddy Zertifikat AWS hochzuladen ich mehrmals fehlgeschlagen ist, aber am Ende war es ziemlich einfach. Keine Notwendigkeit zu konvertieren, etwas zu .PEM. Sie müssen nur sicher sein, die GoDaddy Bündel Zertifikat in der Kette Parameter umfassen z.

aws iam upload-server-certificate
    --server-certificate-name mycert
    --certificate-body file://try2/40271b1b25236fd1.crt
    --private-key file://server.key
    --path /cloudfront/production/
    --certificate-chain file://try2/gdig2_bundle.crt

Und Ihre vorherige Upload fehlgeschlagen löschen können Sie tun,

aws iam delete-server-certificate --server-certificate-name mypreviouscert
  1. Download Zertifikat von vorläufigem Portal von AppleID,
  2. Export-Zertifikat von Schlüsselkette und gibt Namen (Certificates.p12)
  3. Öffnen Sie das Terminal und goto Ordner, in dem Sie über Certificates.p12 Datei zu speichern,
  4. Ausführen unter Befehle:

    a) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes,

    b) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

  5. Ihre .pem-Datei bereit "pushcert.pem".
  • Öffnen Sie das Terminal.
  • Gehen Sie zu dem Ordner, in dem Ihr Zertifikat befindet.
  • unter Befehl Ausführen von Namen mit Ihrem Zertifikat zu ersetzen.
  

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

  • Hoffe, es funktioniert !!
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top