Lassen Sie mich zuerst meine Frage erklären. Ich habe ein Zertifikat von einer Zertifizierungsstelle gekauft und das folgende Format verwendet, um die CSR und den privaten Schlüssel zu generieren:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
Wenn ich die Datei server.key öffne, sehe ich, dass sie mit "----- BEGIN PRIVATE KEY -----" beginnt.
Ich verwende das SSL-Zertifikat auf meinem Server und alles sieht gut aus.
Jetzt möchte ich dasselbe Zertifikat in AWS IAM hochladen, damit ich es für Beanstalk Load Balancer verwenden kann. Ich verwende den folgenden Befehl aus diesem aws-Dokument: http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SubmitCSRCertAuth
iam-servercertupload -b public_key_certificate_file -k privatekey.pem -s certificate_object_name
Ich ändere die Namen der Zertifizierungsdateien nach Bedarf, erhalte jedoch weiterhin die folgende Fehlermeldung: "400 MalformedCertificate Invalid Private Key".
Das Interessante ist, dass auf der aws-Dokumentseite der angezeigte private Beispielschlüssel mit "------- RSA Private Key beginnen --------" beginnt.
Gibt es eine Möglichkeit, meinen privaten Schlüssel mit openssl in einen privaten RSA-Schlüssel umzuwandeln?
quelle
Invalid PEM structure, '-----BEGIN...' missing.
von Tools wie Cyberduck zu erhalten, während reines SSH mit demselben Schlüssel funktioniert.A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Unable to parse certificate. Please ensure the certificate is in PEM format.
auf meinem privaten Schlüssel bekommen und ausgeführt, um es zu beheben!Private Key
von einemRSA Private Key
?openssl pkcs8 -topk8 -nocrypt -in privkey.pem
wird eine PKCS8 an STDOUT schreibenDies kann hilfreich sein (schreiben Sie die Backslashes '\' in den Befehlen nicht buchstäblich aus, sie sollen anzeigen, dass "alles in einer Zeile stehen muss"):
Es scheint, dass alle Befehle (in grau) jede Art von Schlüsseldatei (in grün) als "in" -Argument verwenden. Was nett ist.
Hier sind noch einmal die Befehle zum einfacheren Einfügen:
und
quelle
So konvertieren Sie "BEGIN OPENSSH PRIVATE KEY" in "BEGIN RSA PRIVATE KEY"
quelle