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
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
Alle Dateien (*.crt, server.csr, server.key) können bereits im PEM-Format vorliegen. Was mit diesen Dateien zu tun ist, hängt davon ab, wie Sie sie verwenden wollen oder welches Tool sie verwendet und welches Format es benötigt.
Ich werde hier etwas weiter ausholen und erklären, welche verschiedenen Formate für die Speicherung von Kryptomaterialien verwendet werden und wie man sie erkennt bzw. in ein anderes Format konvertiert.
Normen
Inhaltliches Format
Dateikodierung
Möglicher Inhalt
X509
X
Bescheinigungen
PKCS#1
X
RSA-Schlüssel (öffentlich/privat)
PKCS#7
X
Zertifikate, CRLs
PKCS#8
X
Private Schlüssel, verschlüsselte private Schlüssel
PKCS#12
X
Zertifikate, CRLs, private Schlüssel
JKS
X
Zertifikate, private Schlüssel
PEM
X
DER
X
Inhalt \ Kodierung
PEM (*)
DER (**)
Binär
X509
X
X
PKCS#1
X
X
PKCS#7 (***)
X
X
PKCS#8
X
X
PKCS#12 (***)
X
JKS (***)
X
これは . erklärt dasselbe + Befehle für Konvertierung/Überprüfung/Inspektion.
Abschließend noch einige typische Schritte für die Arbeit mit Kryptographie/PKI-Materialien:
Ich habe versucht, von godaddy zu app engine zu wechseln. Was hat der Trick war mit dieser Zeile:
openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr
Genau so, wie es ist, nur dass ich den Namen durch meinen Domänennamen ersetzt habe (nicht, dass es wirklich wichtig wäre)
Und ich habe alle Fragen, die sich auf den gemeinsamen Namen / die Organisation beziehen, unter www.name.com beantwortet.
Dann öffnete ich die csr, kopierte sie, fügte sie in go daddy ein, lud sie herunter, entpackte sie, navigierte mit dem Terminal zu dem entpackten Ordner und gab sie ein:
cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt
Dann habe ich diese Anweisungen aus Probleme mit Google Apps Custom 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 bisher, nur dass ich statt privateKey.key name.unencrypted.priv.key und statt www_mydomain_com.crt name.crt verwendet habe
Dann habe ich die public.pem für das "PEM-codierte X.509-Zertifikat" in die Verwaltungskonsole hochgeladen und die private.pem für den "Unverschlüsselten PEM-codierten RSA-Privatschlüssel" hochgeladen.
.. Und das hat endlich funktioniert.
Unter Windows können Sie mit dem Befehl certutil
Werkzeug:
certutil -encode server.crt cert.pem
certutil -encode server.key key.pem
Sie können beide Dateien in PowerShell wie folgt zu einer Datei kombinieren:
Get-Content cert.pem, key.pem | Set-Content cert-and-key.pem
Und in CMD so:
copy cert.pem+key.pem cert-and-key.pem /b
Was ich beobachtet habe, ist: Wenn Sie openssl zum Generieren von Zertifikaten verwenden, werden sowohl der Textteil als auch der base64-Zertifikatsteil in der crt-Datei erfasst. Das strenge pem-Format sagt ( wiki-Definition ), dass die Datei mit BEGIN und END beginnen und enden soll.
.pem - (Privacy Enhanced Mail) Base64 kodiertes DER-Zertifikat, eingeschlossen zwischen "-----BEGIN CERTIFICATE-----" und "-----END CERTIFICATE-----"
Bei einigen Bibliotheken (die ich in Java gefunden habe), die ein striktes pem-Format erwarten, würde das erzeugte crt bei der Validierung als "ungültiges pem-Format" durchfallen.
Auch wenn Sie die Zeilen mit BEGIN/END CERTIFICATE kopieren oder ausfindig machen und in eine cert.pem-Datei einfügen, sollte es funktionieren.
Hier ist, was ich tun, nicht sehr sauber, aber funktioniert für mich, im Grunde filtert es den Text ab BEGIN Zeile:
grep -A 1000 BEGIN cert.crt > cert.pem
Eine andere Möglichkeit besteht darin, das nicht-straffe Zertifikat einfach durch openssl x509
. Es wird ein gültiges PEM-Zertifikat ausgegeben: cat certificate.crt | openssl x509 > certificate.pem
Wenn Sie alles von "BEGIN" bis zum Ende der Datei erhalten wollen, ist das eine Aufgabe für sed. Genauer gesagt, wollen Sie etwas wie sed -n '/--BEGIN/,$p' cert.crt
in diesem Fall. Um das zu erklären: das "-n" sagt sed, dass es standardmäßig nichts ausgibt, und dann der Bereichsausdruck /--BEGIN/,$
macht die p
(print) gelten für Zeilen zwischen der ersten Zeile, in der --BEGIN
und das Ende der Datei ( $
).
Laden Sie das Zertifikat vom vorläufigen Portal per appleId herunter,
Exportieren Sie das Zertifikat aus der Schlüsselkette und geben Sie einen Namen an (Certificates.p12),
Öffnen Sie das Terminal und wechseln Sie in den Ordner, in dem Sie die Datei Certificates.p12 gespeichert haben,
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
Ihre .pem-Datei bereit "pushcert.pem".
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.
4 Stimmen
Andersherum: Konvertieren
.pem
a.crt
y.key
.