如何将私钥转换为RSA私钥?

让我先解释我的问题。 我从CA购买了证书,并使用以下格式生成csr和私钥:

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr 

当我打开server.key文件时,我发现它以“—– BEGIN PRIVATE KEY —–”开头,

我在我的服务器上使用SSL证书,一切都很好。

现在,我想将相同的证书上传到AWS IAM,以便我可以将其用于Beanstalk负载平衡器。 我使用以下命令从这个aws doc 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 

我根据需要更改证书文件的名称,但不断收到此错误:“400 MalformedCertificate无效的私钥”。

有趣的是,在aws文档页面上,它们显示的示例私钥以“——-开始RSA私钥——–”开始,

有没有办法使用openssl将我的私钥转换为RSA私钥?

较新版本的OpenSSL说BEGIN PRIVATE KEY,因为它们包含私钥+标识密钥types的OID(这被称为PKCS8格式)。 要获得旧式密钥(称为PKCS1或传统的OpenSSL格式),可以这样做:

 openssl rsa -in server.key -out server_new.key 

或者,如果您有PKCS1密钥并希望PKCS8:

 openssl pkcs8 -topk8 -nocrypt -in privkey.pem 

这可能有一些帮助(不要直接在命令中写出反斜杠'',它们是为了表明“每件事都必须在一条线上”):

什么时候应用哪个命令

看来,所有的命令(灰色)采取任何types的密钥文件(绿色)作为“in”参数。 这很好。

以下是再次使用的命令,以便于复制粘贴:

 openssl rsa -in $FF -out $TF openssl rsa -aes256 -in $FF -out $TF openssl pkcs8 -topk8 -nocrypt -in $FF -out $TF openssl pkcs8 -topk8 -v2 aes-256-cbc -v2prf hmacWithSHA256 -in $FF -out $TF 

 openssl rsa -check -in $FF openssl rsa -text -in $FF