سيرشدك هذا الدليل خلال استخراج المعلومات من ملف 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.
فيديو
في جميع الأمثلة الموضحة أدناه ، استبدل أسماء الملفات التي تعمل معها بالفعل 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-----