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

标签 ssl openssl ssl-certificate amazon-iam

让我先解释一下我的问题。我从 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/

相关文章:

haskell - 如何向 http-client-tls 提供客户端证书?

使用带有 SSL 的 ODBC (5.1) 的 MySQL 连接

azure - 多域 SSL 证书和 Windows Azure

ssl - 为什么证书颁发机构 (CA) 从中间机构而不是根机构颁发证书?

ruby - 如何确定应用程序使用的 TLS 版本?

asp.net - IIS 不使用 SSL 证书

ssl - 是否可以从 pgp 公钥/私钥创建 ssl 证书?

c++ - 没有用于调用 'EVP_DigestFinal' 的匹配函数 - 在 C++ 中使用 openssl 库

带有字符串公钥的PHP OpenSSL公钥加密

java - 在运行时在 Jetty 中设置 ssl keystore