Deixe-me explicar minha pergunta primeiro. Comprei um certificado de uma CA e usei o seguinte formato para gerar o csr e a chave privada:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
Quando abro o arquivo server.key, vejo que ele começa com "----- BEGIN PRIVATE KEY -----"
Eu uso o certificado SSL no meu servidor e tudo parece bem.
Agora eu quero fazer upload do mesmo certificado para AWS IAM para que eu possa usá-lo pelo balanceador de carga beanstalk. Eu uso o seguinte comando deste documento 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
Eu mudo os nomes dos arquivos certificados conforme necessário, mas continuo recebendo este erro: "400 MalformedCertificate Invalid Private Key."
O interessante é que, na página de doc do aws, o exemplo de chave privada que eles mostram começa com "------- Begin RSA Private Key --------"
Existe uma maneira de converter minha chave privada em uma chave privada RSA usando o openssl?
fonte
Invalid PEM structure, '-----BEGIN...' missing.
de ferramentas como o Cyberduck, enquanto o SSH puro com a mesma chave está funcionando.A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Unable to parse certificate. Please ensure the certificate is in PEM format.
e executando isso na minha chave privada, consertei!Private Key
de umRSA Private Key
?openssl pkcs8 -topk8 -nocrypt -in privkey.pem
vai escrever um PKCS8 para STDOUTIsso pode ser de alguma ajuda (não escreva literalmente as barras invertidas '\' nos comandos, elas significam que "tudo tem que estar em uma linha"):
Parece que todos os comandos (em cinza) aceitam qualquer tipo de arquivo de chave (em verde) como argumento "in". Que é bom.
Aqui estão os comandos novamente para facilitar a cópia e colagem:
e
fonte
Para converter "BEGIN OPENSSH PRIVATE KEY" em "BEGIN RSA PRIVATE KEY"
fonte