it-swarm.dev

كيفية تحويل مفتاح خاص إلى مفتاح RSA خاص؟

اسمحوا لي أن أشرح سؤالي أولا. لقد اشتريت شهادة من المرجع المصدق واستخدمت التنسيق التالي لإنشاء csr والمفتاح الخاص:

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

عندما أقوم بفتح الملف server.key ، أرى أنه يبدأ بـ "----- BEGIN PRIVATE KEY -----"

يمكنني استخدام شهادة SSL على الخادم الخاص بي وكل شيء يبدو جيدًا.

الآن أريد تحميل نفس الشهادة إلى AWS IAM حتى أتمكن من استخدامها من خلال موازن تحميل شجرة الفاصولياء. يمكنني استخدام الأمر التالي من هذا المستند ds 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 --------"

هل هناك طريقة لتحويل مفتاحي الخاص إلى مفتاح RSA خاص باستخدام openssl؟

79
Silent User

توضح الإصدارات الأحدث من 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
123
Paul Kehrer

قد يكون ذلك مفيدًا بعض الشيء (لا تكتب حرفًا خطوط مائلة عكسية في الأوامر ، فالمقصود منها الإشارة إلى أن "كل شيء يجب أن يكون في سطر واحد"):

 Which Command to Apply When 

يبدو أن جميع الأوامر (باللون الرمادي) تأخذ أي نوع من ملفات المفاتيح (باللون الأخضر) كوسيطة "في". وهو لطيف.

فيما يلي الأوامر مرة أخرى لسهولة لصق النسخ:

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
20
David Tonhofer