الفرق بين PEM وDER وPFX وPKCS#7: شرح صيغ شهادات SSL وكيفية التحويل بينها
عند استلام شهادة SSL غالبًا ما تحصل على أكثر من ملف بامتدادات مختلفة: .pem و.crt و.der و.pfx و.p7b. المشكلة أن خادمك يقبل صيغة واحدة محددة فقط وليس كلها. يشرح هذا الدليل ما هي كل صيغة وأين تُستخدم وكيف تنتقل بينها باستخدام محول SSL.
ما هي صيغ شهادات SSL؟
تحمل جميع الصيغ نفس بيانات الشهادة الأساسية. الفرق يكمن في طريقة تغليف هذه البيانات وما إذا كانت تتضمن أيضًا المفتاح الخاص وشهادات السلسلة.
- PEM — صيغة نصية مُرمّزة بـ Base64 (تبدأ بـ
-----BEGIN CERTIFICATE-----). إنها المعيار في Apache وNginx وعالم لينكس عمومًا. يمكن لملف واحد أن يحتوي على الشهادة والسلسلة والمفتاح الخاص معًا. - DER — النسخة الثنائية من PEM. غير قابلة للقراءة البشرية، وتفضّلها بعض تطبيقات Java والأجهزة. الامتداد عادةً
.derأو.cer. - PFX / PKCS#12 — يجمع الشهادة والسلسلة والمفتاح الخاص في ملف واحد مُشفّر (
.pfxأو.p12). إنه صيغة النقل المعيارية لنظام Windows وخادم IIS. - P7B / PKCS#7 — يحتوي على الشهادة وسلسلتها فقط، دون مفتاح خاص (
.p7bأو.p7c). شائع لبناء السلسلة في بيئات Windows وTomcat.
أي خادم يحتاج أي صيغة؟
- Apache / Nginx (لينكس): PEM — ملف شهادة منفصل (مع السلسلة) وملف مفتاح خاص منفصل.
- Microsoft IIS / Windows: PFX (PKCS#12) — الشهادة والمفتاح والسلسلة في ملف واحد. غالبًا ما يكون الخيار الأكثر عملية.
- Apache Tomcat: عادةً مخزن مفاتيح PKCS#12 (PFX)؛ والإعدادات القديمة تستخدم P7B للسلسلة.
- تطبيقات Java: DER أو PKCS#12 للاستيراد إلى مخزن المفاتيح.
- موازِنات الحِمل / شبكات CDN: عادةً PEM (الشهادة + المفتاح).
كيفية التحويل باستخدام محول SSL
تتيح لك أداة محول SSL الانتقال بين هذه الصيغ في ثوانٍ. والأهم: كل شيء يعمل داخل متصفحك؛ مفتاحك الخاص لا يغادر جهازك أبدًا. لا تُرفع الملفات إلى أي خادم، ويتم التحويل محليًا بالكامل.
- افتح الأداة واختر الملف الذي تريد تحويله (PEM أو DER أو P7B أو PFX).
- حدّد الصيغة المستهدفة.
- إذا كنت تنشئ مخرجًا بصيغة PFX، أضف المفتاح الخاص واختياريًا حدّد كلمة مرور.
- إذا كنت تستخدم ملف PFX كمدخل، فيجب إدخال كلمة مرور الملف.
- اضغط على تحويل ونزّل النتيجة.
أوامر openssl المكافئة
لمن يفضّلون سطر الأوامر، إليك المكافئات:
PEM -> DER: openssl x509 -in cert.pem -outform der -out cert.der
DER -> PEM: openssl x509 -in cert.der -inform der -out cert.pem
PEM -> PFX: openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx
PFX -> PEM: openssl pkcs12 -in cert.pfx -nodes -out cert.pem
PEM -> P7B: openssl crl2pkcs7 -nocrl -certfile cert.pem -out cert.p7b
P7B -> PEM: openssl pkcs7 -in cert.p7b -print_certs -out cert.pemPFX والخصوصية: لماذا تفعلها في المتصفح؟
ملف PFX حسّاس للغاية لأنه يحتوي على مفتاحك الخاص. أي شخص يحصل على هذا المفتاح يمكنه فك تشفير حركة بياناتك أو انتحال هوية موقعك. لذلك فإن رفع تحويلات تحتوي على مفتاح خاص إلى مواقع عشوائية على الإنترنت يمثّل خطرًا جسيمًا. في أداتنا يتم التحويل بالكامل في جانب العميل، لذا لا يغادر مفتاحك حاسوبك أبدًا وتبقى خصوصيتك سليمة.
ليس لديك شهادة بعد؟
إذا لم يكن لديك شهادة لتحويلها، فاحصل على واحدة أولًا. باستخدام معالج SSL المجاني لمدة 90 يومًا يمكنك إصدار شهادة Let's Encrypt في دقائق، ثم تحويلها إلى الصيغة الدقيقة التي يتطلبها خادمك.
الخلاصة
PEM لنظام لينكس/Apache/Nginx، وDER ثنائي/Java، وPFX لنظام Windows/IIS (مع المفتاح)، وP7B للسلسلة (دون مفتاح). حدّد الصيغة الصحيحة، وحوّلها بأمان باستخدام محول SSL، وتذكّر: تتم العملية بأكملها داخل متصفحك، ومفتاحك الخاص لا يغادر جهازك أبدًا.