[英]How to convert a private key to an RSA private key?
讓我先解釋一下我的問題。 我從 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 Invalid Private Key。”
有趣的是,在 aws doc 頁面上,他們顯示的示例私鑰以“-------Begin RSA Private Key--------”開頭
有沒有辦法使用 openssl 將我的私鑰轉換為 RSA 私鑰?
較新版本的 OpenSSL 說BEGIN PRIVATE KEY
因為它們包含私鑰 + 標識密鑰類型的 OID(這稱為 PKCS8 格式)。 要獲取舊式密鑰(稱為 PKCS1 或傳統 OpenSSL 格式),您可以執行以下操作:
openssl rsa -in server.key -out server_new.key
或者,如果您有 PKCS1 密鑰並想要 PKCS8:
openssl pkcs8 -topk8 -nocrypt -in privkey.pem
這可能會有所幫助(不要在命令中逐字地寫出反斜杠“\\”,它們旨在表明“所有內容都必須在一行上”):
似乎所有命令(灰色)都將任何類型的密鑰文件(綠色)作為“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
要將BEGIN OPENSSH PRIVATE KEY
轉換為BEGIN RSA PRIVATE KEY
:
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.