Permítanme explicar mi pregunta primero. Compré un certificado de una CA y utilicé el siguiente formato para generar el csr y la clave privada:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
Cuando abro el archivo server.key, veo que comienza con "----- BEGIN PRIVATE KEY -----"
Utilizo el certificado SSL en mi servidor y todo se ve bien.
Ahora quiero cargar el mismo certificado en AWS IAM para poder usarlo con el balanceador de carga de beanstalk. Utilizo el siguiente comando de este documento de aws 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
Cambio los nombres de los archivos del certificado según sea necesario, pero sigo recibiendo este error: "400 MalformedCertificate Invalid Private Key"
Lo interesante es que, en la página del documento de aws, la clave privada de muestra que muestran comienza con "------- Comenzar clave privada RSA --------"
¿Hay alguna forma de convertir mi clave privada en una clave privada RSA usando openssl?
fuente
Invalid PEM structure, '-----BEGIN...' missing.
de herramientas como Cyberduck mientras SSH puro con la misma clave está funcionando.A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Unable to parse certificate. Please ensure the certificate is in PEM format.
y ejecutando esto en mi clave privada y lo arreglé!Private Key
de unRSA Private Key
?openssl pkcs8 -topk8 -nocrypt -in privkey.pem
escribirá un PKCS8 a STDOUTEsto puede ser de alguna ayuda (no escriba literalmente las barras invertidas '\' en los comandos, están destinadas a indicar que "todo tiene que estar en una línea"):
Parece que todos los comandos (en gris) toman cualquier tipo de archivo de clave (en verde) como argumento "en". Lo cual es bueno.
Aquí están los comandos nuevamente para copiar y pegar más fácilmente:
y
fuente
Para convertir "BEGIN OPENSSH PRIVATE KEY" en "BEGIN RSA PRIVATE KEY"
fuente