تصدير الشهادات والمفتاح الخاص من ملف PKCS # 12 مع OpenSSL

ملحوظة: لا تنطبق هذه المقالة على شهادات توقيع رمز SSL.com وتوقيع المستندات. لا يمكن تصدير المفاتيح الخاصة لهذه الأنواع من الشهادات ولا يمكن إنشاؤها كملفات ‎.pfx. لا يمكن إنشاء شهادات توقيع رمز SSL.com وتوقيع المستندات ومفاتيحها الخاصة وتخزينها إلا في بيئة التوقيع السحابية eSignerأو المعلم Yubikey الجهاز، أو المدعومة سحابة HSM.

سيرشدك هذا الدليل خلال استخراج المعلومات من ملف PKCS # 12 مع OpenSSL. PKCS # 12 (المعروف أيضًا باسم PKCS12 أو PFX) هو تنسيق ثنائي لتخزين سلسلة الشهادات والمفتاح الخاص في ملف واحد قابل للتشفير. تُستخدم ملفات PKCS # 12 بشكل شائع لاستيراد الشهادات والمفاتيح الخاصة وتصديرها على أجهزة الكمبيوتر التي تعمل بنظام Windows و macOS ، وعادةً ما تحتوي على امتدادات أسماء الملفات .p12 or .pfx.

لمزيد من الإرشادات المفيدة وآخر أخبار الأمن السيبراني ، اشترك في النشرة الإخبارية لـ SSL.com هنا:

ما هو OpenSSL؟
OpenSSL عبارة عن مجموعة أدوات مفيدة لسطر الأوامر مفتوحة المصدر للعمل معها X.509 الشهادات ، طلبات توقيع الشهادات (CSRs) ومفاتيح التشفير. إذا كنت تستخدم متغير UNIX مثل Linux أو macOS ، فمن المحتمل أن يكون OpenSSL مثبتًا بالفعل على جهاز الكمبيوتر الخاص بك. إذا كنت ترغب في استخدام OpenSSL على Windows ، فيمكنك تمكين نظام Linux الفرعي لنظام التشغيل Windows 10 أو تثبيت سيغوين. يمكنك أيضًا بسهولة خلق ملف PKCS # 12 مع openSSL.

يوفر SSL.com مجموعة متنوعة من SSL /TLS شهادات الخادم لمواقع HTTPS.

قارن SSL /TLS شهادات

فيديو

https://www.youtube.com/watch?v=S_imVMFOdhU

في جميع الأمثلة الموضحة أدناه ، استبدل أسماء الملفات التي تعمل معها بالفعل INFILE.p12, OUTFILE.crtو OUTFILE.key.

عرض معلومات PKCS # 12 على الشاشة

لتفريغ جميع المعلومات في ملف PKCS # 12 إلى الشاشة في تنسيق PEM، استخدم هذا الأمر:

openssl pkcs12 -Info -in INFILE.p12- العقد

سيُطلب منك بعد ذلك إدخال كلمة مرور ملف PKCS # 12:

أدخل كلمة مرور الاستيراد:

اكتب كلمة المرور التي تم إدخالها عند إنشاء ملف PKCS # 12 واضغط enter. سيقوم OpenSSL بإخراج أي شهادات ومفاتيح خاصة في الملف إلى الشاشة:

سمات الحقيبة localKeyID: AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 الموضوع = / CN = Aaron Russell/emailAddress=*********@gmail.com issuer = / C = US / ST = تكساس / L = هيوستن / O = SSL كورب / CN = SSL.com العميل شهادة المتوسطة CA RSA R1 ----- شهادة البداية ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2Hr83U

تشفير المفتاح الخاص

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

openssl pkcs12 -Info -in INFILE.p12

في هذه الحالة ، ستتم مطالبتك بإدخال كلمة مرور جديدة والتحقق منها بعد أن يقوم OpenSSL بإخراج أي شهادات ، وسيتم تشفير المفتاح الخاص (لاحظ أن نص المفتاح يبدأ بـ -----BEGIN ENCRYPTED PRIVATE KEY-----):

أدخل PEM عبارة مرور: التحقق - أدخل PEM عبارة مرور: ----- BEGIN تشفير المفتاح الخاص ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END المشفرة مفتاح سري-----

استخراج الشهادات أو المفتاح الخاص فقط

إذا كنت تريد إخراج المفتاح الخاص فقط ، فأضف -nocerts للأمر:

opensl pkcs12 -info -in INFILE.p12 -nodes -nocerts

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

openssl pkcs12 -Info -in INFILE.p12 -nokeys

حفظ الشهادات والمفاتيح الخاصة للملفات

يمكنك تصدير الشهادات والمفتاح الخاص من ملف PKCS # 12 وحفظها بتنسيق PEM إلى ملف جديد عن طريق تحديد اسم ملف الإخراج:

openssl pkcs12 - في INFILE.p12 - خارج OUTFILE.crt - العقد

مرة أخرى ، ستتم مطالبتك بكلمة مرور ملف PKCS # 12. كما في السابق ، يمكنك تشفير المفتاح الخاص عن طريق إزالة ملف -nodes إشارة من الأمر و / أو إضافة -nocerts or -nokeys لإخراج المفتاح الخاص أو الشهادات فقط. لذلك ، لإنشاء ملف مفتاح خاص ، يمكننا استخدام هذا الأمر:

opensl pkcs12 -في INFILE.p12 -خارج OUTFILE.key -Nodes -nocerts

ولإنشاء ملف يتضمن الشهادات فقط ، استخدم هذا:

opensl pkcs12 -في INFILE.p12 -خارج OUTFILE.crt -nokeys

تحويل المفتاح الخاص إلى تنسيق PKCS # 1

تُخرج الأمثلة المذكورة أعلاه المفتاح الخاص في الإعداد الافتراضي لـ OpenSSL PKCS # 8 شكل. إذا كنت تعرف أنك بحاجة PKCS # 1 بدلاً من ذلك ، يمكنك توجيه إخراج الأداة المساعدة PKCS # 12 الخاصة بـ OpenSSL إلى الأداة المساعدة RSA أو EC الخاصة بها اعتمادًا على نوع المفتاح. سيُخرج كلا الأمرين أدناه ملف مفتاح بتنسيق PKCS # 1:

RSA

opensl pkcs12 -في INFILE.p12 -العقد -حفلات | opensl rsa -out OUTFILE.key

ECDSA

opensl pkcs12 -في INFILE.p12 -العقد -حفلات | opensl ec -out OUTFILE.key

ملحوظة: يمكنك معرفة الفرق بين ملفات المفاتيح الخاصة PKCS # 8 و PKCS # 1 بالنظر إلى السطر الأول من النص. ستحدد ملفات PKCS # 1 الخوارزمية:
-----BEGIN RSA PRIVATE KEY-----

لا تعرض ملفات PKCS # 8 الخوارزمية ، وقد يتم تشفيرها أيضًا:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


شكرًا لاختيارك SSL.com! إذا كان لديك أي أسئلة ، يرجى الاتصال بنا عبر البريد الإلكتروني على Support@SSL.com، مكالمة 1-877-SSL-SECURE، أو فقط انقر على رابط الدردشة في أسفل يمين هذه الصفحة.

اشترك في النشرة الإخبارية SSL.com

لا تفوت المقالات والتحديثات الجديدة من SSL.com

ابق على اطلاع وآمن

SSL.com هي شركة عالمية رائدة في مجال الأمن السيبراني، PKI والشهادات الرقمية. قم بالتسجيل لتلقي آخر أخبار الصناعة والنصائح وإعلانات المنتجات من SSL.com.

نحن نحب ملاحظاتك

شارك في استبياننا وأخبرنا بأفكارك حول عملية الشراء الأخيرة.