簡體   English   中英

如何將私鑰轉換為 RSA 私鑰?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM