it-swarm.com.de

Wie erhalte ich eine .pem-Datei aus .key- und .crt-Dateien?

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

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

  • .crt
  • server.csr
  • server.key
545

Ihre Schlüssel haben möglicherweise bereits das PEM-Format, sind jedoch nur mit .crt oder .key benannt.

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

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

Wenn die Datei 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

Verwenden Sie für server.key openssl rsa anstelle von openssl x509.

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

Wenn dies für einen Webserver gilt und Sie nicht angeben können, dass ein separater privater und öffentlicher Schlüssel geladen werden soll:

Möglicherweise müssen Sie 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 können, die Sie für diese Datei behalten.

720
maxwellb

Ich musste dies für eine AWS-ELB tun. Nachdem ich mich viele Male vom Dialog verprügeln ließ, funktionierte für mich Folgendes:

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 file:// voranzustellen. So wird es 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

209
slf

Eine pem -Datei enthält das Zertifikat und den privaten Schlüssel. Dies hängt vom Format Ihres Zertifikats/Schlüssels ab, ist aber wahrscheinlich so einfach:

cat server.crt server.key > server.pem
77
sth

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

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

dies ist die beste Option zum Erstellen einer PEM-Datei

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

Der Versuch, ein GoDaddy-Zertifikat auf AWS hochzuladen, schlug mehrmals fehl, aber am Ende war es ziemlich einfach. Sie müssen nichts in .pem konvertieren. Sie müssen lediglich sicherstellen, dass das GoDaddy-Bundle-Zertifikat im chain-Parameter enthalten ist, 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 um Ihren vorherigen fehlgeschlagenen Upload zu löschen, können Sie dies tun

aws iam delete-server-certificate --server-certificate-name mypreviouscert
4
skensell

Ich habe versucht, von Godaddy zu App Engine zu wechseln. Der Trick bestand darin, diese Zeile zu verwenden:

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

Genau so wie es ist, aber das Ersetzen des Namens durch meinen Domainnamen (nicht, dass es wirklich überhaupt etwas ausmachte)

Und ich beantwortete alle Fragen zu allgemeinem Namen/Organisation als www.name.com

Dann öffnete ich den csr, kopierte ihn, fügte ihn in Go Daddy ein, lud ihn herunter, entpackte ihn, navigierte zum entpackten Ordner mit dem Terminal und gab ein:

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

Dann habe ich diese Anweisungen von Probleme mit der benutzerdefinierten Domain von Google Apps, SSL verwendet:

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

genau so, außer dass ich anstelle von privateKey.key name.unencrypted.priv.key und anstelle von www_mydomain_com.crt name.crt verwendet habe

Dann habe ich die Datei public.pem für das "PEM-codierte X.509-Zertifikat" auf die Administratorkonsole hochgeladen und die Datei private.pem für den "unverschlüsselten PEM-codierten privaten RSA-Schlüssel".

..Und das hat endlich geklappt.

4
user2738183

Was ich beobachtet habe ist: Wenn Sie OpenSSL verwenden, um Zertifikate zu generieren, erfasst es sowohl den Textteil als auch den Base64-Zertifikatsteil in der CRT-Datei. Das strikte PEM-Format besagt ( Wiki-Definition ), dass die Datei mit BEGIN und END beginnen und enden soll.

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

Für einige Bibliotheken (ich habe dies in Java erlebt), die ein striktes PEM-Format erwarten, würde das generierte CRT die Validierung als 'ungültiges PEM-Format' nicht bestehen.

Auch wenn Sie die Zeilen mit BEGIN/END CERTIFICATE kopieren oder abfragen und in eine cert.pem-Datei einfügen, sollte dies funktionieren.

Hier ist, was ich tue, nicht sehr sauber, aber für mich funktioniert, im Grunde filtert es den Text ab der BEGIN-Zeile:

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

4
adityalad
  1. Zertifikat vom vorläufigen Portal von appleId herunterladen,
  2. Exportieren Sie das Zertifikat vom Schlüsselbund und geben Sie den Namen an (Certificates.p12).
  3. Öffnen Sie das Terminal und den Ordner goto, in dem Sie die Datei Certificates.p12 speichern.
  4. Führen Sie die folgenden Befehle aus:

    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 ist bereit für "pushcert.pem".
4
Ashvin Ajadiya
  • Terminal öffnen.
  • Wechseln Sie zu dem Ordner, in dem sich Ihr Zertifikat befindet.
  • Führen Sie den folgenden Befehl aus, indem Sie den Namen durch Ihr Zertifikat ersetzen.

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

  • Hoffe es wird funktionieren !!
0
Dhaval H. Nena