让我先解释一下我的问题。我从 CA 购买了证书并使用以下格式生成 csr 和私钥:
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
当我打开 server.key 文件时,我看到它以“-----BEGIN PRIVATE KEY-----”开头
我在我的服务器上使用了 SSL 证书,一切看起来都很好。
现在我想将相同的证书上传到 AWS IAM,以便 beantalk 负载均衡器可以使用它。我使用此 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
我根据需要更改证书文件名,但不断收到此错误:“400 MalformedCertificate 私钥无效。”
有趣的是,在 aws 文档页面上,他们显示的示例私钥以“--------Begin RSA Private Key--------”开头
有没有办法使用 openssl 将我的私钥转换为 RSA 私钥?
最佳答案
较新版本的 OpenSSL 说 BEGIN PRIVATE KEY
因为它们包含私钥 + 标识 key 类型的 OID(这称为 PKCS8 格式)。要获取旧式 key (称为 PKCS1 或传统 OpenSSL 格式),您可以执行以下操作:
openssl rsa -in server.key -out server_new.key
或者,如果您有 PKCS1 key 并想要 PKCS8:
openssl pkcs8 -topk8 -nocrypt -in privkey.pem
关于ssl - 如何将私钥转换为 RSA 私钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17733536/