سؤال

كيف يمكنني إنشاء ملف PEM من شهادة SSL؟

هذه هي الملفات التي أتيتها:

  • .crt
  • server.csr
  • server.key
هل كانت مفيدة؟

المحلول

قد تكون مفاتيحك بالفعل بتنسيق PEM، ولكن اسمه فقط مع .CRT أو .KEY.

إذا كان محتوى الملف يبدأ -----BEGIN ويمكنك قراءتها في محرر نصوص:

يستخدم الملف Base64، وهو قابل للقراءة في ASCII، وليس بتنسيق ثنائي. الشهادة موجودة بالفعل بتنسيق PEM. مجرد تغيير التمديد إلى .pem.

إذا كان الملف في ثنائي:

ل server.crt، سوف تستخدم

openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

ل server.key، استخدم openssl rsa بدلا من openssl x509.

من المحتمل أن يكون Server.Key المفتاح الخاص بك الخاص، وملف .CRT هو شهادة إرجاعها، الموقع، X509.

إذا كان هذا للحصول على خادم ويب ولا يمكنك تحديد تحميل مفتاح منفصل خاص وعامة:

قد تحتاج إلى تسلسل الملفين. لهذا الاستخدام:

cat server.crt server.key > server.includesprivatekey.pem

أود أن أوصي بتسمية الملفات مع "WhaterPrivateKey" لمساعدتك في إدارة الأذونات التي يمكنك الاحتفاظ بها مع هذا الملف.

نصائح أخرى

كنت بحاجة للقيام بذلك ل AWS ELB. بعد التعرض للضرب بواسطة الحوار عدة مرات، وأخيرا هذا هو ما عمل لي:

openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem

شكرًا NCZ.

تحرير: كما يقول lfoatingrock

مع AWS، لا تنس أن تسفر اسم الملف file://. وبعد لذلك سوف تبدو وكأنها:

 aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/

http://docs.aws.amazon.com/cli/latest/Reference/am/upload-server-certificate.html.

أ pem يحتوي الملف على الشهادة والمفتاح الخاص. يعتمد ذلك على تنسيق شهادتك / المفتاح، ولكن ربما يكون بسيطا مثل هذا:

cat server.crt server.key > server.pem

بالإضافة إلى ذلك، إذا كنت لا ترغب في طلب عبارة مرور، فاحتاج إلى تشغيل الأمر التالي:

openssl rsa -in server.key -out server.key

هذا هو الخيار الأفضل لإنشاء ملف .pem

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts

ما لوحظته هو: إذا كنت تستخدم Openssl لتوليد الشهادات، فإنه يلتقط جزءا من جزء النص وجزء شهادة Base64 في ملف CRT. يقول تنسيق PEM الصارم (تعريف الويكي) أن الملف يجب أن يبدأ وينتهي بالبداية والنهاية.

.PEM - (خصوصية البريد المحسن) BASS64 شرف الشهادة دير، مرفقة بين "----- تبدأ شهادة -----" و "- شهادة نهاية ----"

لذلك بالنسبة لبعض المكتبات (واجهت هذا في جافا) تتوقع تنسيق PEM الصارم، فإن CRT الذي تم إنشاؤه سيفشل في التحقق من الصحة ك "تنسيق PEM غير صالح".

حتى إذا قمت بنسخ أو GREP على الأسطر مع شهادة بدء / نهاية، ولصقها في ملف Cert.pem، يجب أن تعمل.

إليك ما أقوم به، وليس نظيفا جدا، لكنه يعمل بالنسبة لي، أساسا فلاتره النص الذي يبدأ من خط البدء:

Grep -a 1000 بدء Cert.crt> Cert.pem

كنت أحاول الذهاب من محرك Godaddy إلى المحرك. ماذا كانت الخدعة تستخدم هذا الخط:

openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr

تماما كما هو الحال، ولكن استبدال الاسم مع اسم النطاق الخاص بي (وليس أنه حقا أكثر أهمية)

وأجبت على جميع الأسئلة المتعلقة بالاسم / المؤسسة الشائعة كما www.name.com

ثم فتحت المسؤولية الاجتماعية للشركات، نسخها، لصقها في الذهاب إلى الأب، ثم قمت بتنزيلها، فكفها، بالتنقل إلى المجلد غير المدقع مع المحطة وإدخالها:

cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt

ثم استخدمت هذه التعليمات من مشكلة مع تطبيقات Google المجال مخصص SSL, ، التي كانت:

openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem

تماما كما هو، باستثناء بدلا من primerkey.key أنا استخدم الاسم. unencrypted.priv.key، وبدلا من www_mydomain_com.crt، استخدمت الاسم.

ثم قمت بتحميل العلوم العامة. Pem لوحدة التحكم المشرف ل "شهادة PEM المشفرة X.509"، وتحميلها Private.pem ل "مفتاح RSA غير المشفر غير المشفرة" ..

.. وهذا يعمل أخيرا.

في محاولة لتحميل شهادة GoDaddy إلى AWS، فشلت عدة مرات، ولكن في النهاية كانت بسيطة جدا. لا حاجة لتحويل أي شيء إلى .pem. عليك فقط أن تتأكد من تضمين شهادة حزمة GoDaddy في معلمة السلسلة، على سبيل المثال

aws iam upload-server-certificate
    --server-certificate-name mycert
    --certificate-body file://try2/40271b1b25236fd1.crt
    --private-key file://server.key
    --path /cloudfront/production/
    --certificate-chain file://try2/gdig2_bundle.crt

ولحذف التحميل الفاشل السابق الخاص بك يمكنك القيام به

aws iam delete-server-certificate --server-certificate-name mypreviouscert
  1. تحميل شهادة من بوابة مؤقتة بواسطة أبليد،
  2. شهادة تصدير من سلسلة المفاتيح وإعطاء الاسم (الشهادات.p12)،
  3. فتح مجلد المحطة الطرفية والخروج حيث يمكنك حفظ الملف فوق ملف الشهادات.
  4. تشغيل أوامر أدناه:

    أ) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes,

    ب) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

  5. ملف .pem جاهز "pushcert.pem".
  • مفتوحة المحطة.
  • انتقل إلى المجلد حيث توجد شهادتك.
  • تنفيذ الأمر أدناه عن طريق استبدال الاسم مع شهادتك.

OPENSSL PKCS12 - في your_certificate.p12 pemout your_certificate.pem -nodes-clcerts

  • آمل أن تعمل!
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top