مفكك ترميز الشهادات

فك ترميز شهادات SSL/TLS بمعيار X.509 بتنسيق PEM. جميع العمليات تتم في متصفحك لتحقيق أقصى أمان وخصوصية.

دعم تنسيق PEM تحليل مفصّل 100% من جانب العميل

كيفية استخدام مفكك ترميز الشهادات

1

الصق الشهادة

انسخ شهادتك المشفّرة بـ PEM متضمنة ترويسات BEGIN/END والصقها في حقل الإدخال

2

فك ترميز تلقائي

تقوم الأداة تلقائياً بتحليل بنية ASN.1/DER واستخراج جميع حقول الشهادة

3

فحص التفاصيل

اعرض الموضوع والمُصدِر وتواريخ الصلاحية وأسماء البدائل ومعلومات المفتاح العام وبصمة SHA-256

ما هو X.509؟

X.509 هو معيار ITU-T لتحديد تنسيق شهادات المفتاح العام. تربط شهادة X.509 هوية (موضوع) بمفتاح عام وتكون موقّعة من قِبل هيئة شهادات (CA). شهادات SSL/TLS المستخدمة لمواقع HTTPS هي التطبيق الأكثر شيوعاً لشهادات X.509.

شهادات SSL/TLS

شهادات X.509 هي أساس HTTPS، تتحقق من هوية الخادم وتُمكّن الاتصال المشفر

البنية التحتية للمفاتيح العامة

يُعرّف X.509 تنسيق شهادات المفاتيح العامة المستخدمة في PKI لربط الهويات بالمفاتيح التشفيرية

ترميز ASN.1/DER

تستخدم الشهادات قواعد الترميز المميز ASN.1 (DER) لبنيتها الثنائية، مغلفة في PEM Base64 للنقل النصي

PEM مقابل DER مقابل CRT مقابل PFX — صيغ الشهادات

يمكن تخزين شهادة X.509 نفسها بعدة صيغ ملفات. معرفة أيها لديك توفر الوقت — إليك كيفية التمييز بينها:

الصيغة الامتدادات الترميز الاستخدام النموذجي
PEM .pem, .crt, .cer ASCII بـ Base64 مع ترويسات BEGIN/END خوادم الويب (Nginx وApache) ومعظم أدوات Linux — الصيغة التي تفك هذه الأداة ترميزها
DER .der, .cer ASN.1 ثنائي خام مخازن مفاتيح Java، وبعض أدوات Windows والأدوات المضمنة
P7B / PKCS#7 .p7b, .p7c ASCII بـ Base64، شهادات فقط (بدون مفتاح خاص) استيراد سلسلة الشهادات في Windows و IIS
PFX / PKCS#12 .pfx, .p12 ثنائي، محمي بكلمة مرور، قد يتضمن المفتاح الخاص الاستيراد/التصدير في Windows و IIS وحِزم توقيع الشيفرة

اختبار سريع: إذا فُتح الملف في محرر نصوص وأظهر -----BEGIN CERTIFICATE----- فهو PEM. وإذا بدا بيانات ثنائية مشوهة فهو DER أو PFX.

أوامر OpenSSL مفيدة

تفضل سطر الأوامر؟ هذه الأوامر في OpenSSL تؤدي ما تؤديه هذه الأداة — فك الترميز والتحقق من التواريخ وحساب بصمة الشهادة:

openssl x509 -in cert.pem -text -noout

فك ترميز الشهادة وعرض جميع حقولها

openssl x509 -in cert.pem -noout -dates

عرض تواريخ الصلاحية فقط (notBefore / notAfter)

openssl x509 -in cert.pem -noout -fingerprint -sha256

طباعة بصمة SHA-256

openssl x509 -in cert.der -inform DER -text -noout

فك ترميز شهادة DER ثنائية

openssl x509 -in cert.pem -noout -subject -issuer

عرض Subject و Issuer فقط

openssl s_client -connect example.com:443 -showcerts

جلب سلسلة الشهادات من خادم فعلي

مرجع حقول الشهادة

معنى كل حقل مفكوك الترميز وأهميته:

Subject (الموضوع)

الهوية التي صدرت لها الشهادة. المكونات الشائعة: CN (الاسم العام) وO (المؤسسة) وC (الدولة).

Issuer (المُصدر)

جهة التصديق التي وقّعت هذه الشهادة. إذا تطابق Subject مع Issuer فالشهادة موقعة ذاتيًا.

Serial Number (الرقم التسلسلي)

رقم فريد تعينه جهة الإصدار، يُستخدم للتحقق من حالة الإبطال (CRL / OCSP).

Validity (Not Before / Not After)

نافذة الوقت التي تكون الشهادة صالحة خلالها. خارج هذه النافذة يرفضها المتصفح والعملاء.

Public Key وحجم المفتاح

المفتاح العام المرتبط بالهوية. المعايير الحالية هي RSA بسعة 2048 بت أو EC بسعة 256 بت؛ أما RSA بسعة 1024 بت فمُهمَل.

Subject Alternative Names (SANs)

قائمة أسماء المضيفين وعناوين IP التي تغطيها الشهادة. منذ 2015 تطابق المتصفحات ضد SANs وليس CN — يجب أن تسرد شهادة example.com عنوان www.example.com صراحةً وإلا فشل التحقق.

Signature Algorithm (خوارزمية التوقيع)

الخوارزمية التي وقّعت جهة التصديق بها الشهادة. يُشترط SHA-256 فأحدث؛ المتصفحات الحديثة ترفض توقيعات SHA-1.

Fingerprint (بصمة SHA-256)

هاش للشهادة كاملة بترميز DER. يُستخدم للتثبيت (pinning) ومقارنة الشهادات عبر الأنظمة.

الأسئلة الشائعة

ما هي تنسيقات الشهادات المدعومة؟

تدعم الأداة الشهادات المشفّرة بـ PEM (-----BEGIN CERTIFICATE-----). تنسيقات DER و P7B غير مدعومة حالياً.

هل تقوم بالتحقق من سلسلة الشهادات؟

تقوم الأداة بفك ترميز وعرض تفاصيل الشهادة لكنها لا تتحقق من سلسلة الثقة مقابل هيئات الشهادات الجذرية.

هل يمكنني فك ترميز طلبات توقيع الشهادات (CSR)؟

حالياً يتم دعم شهادات X.509 فقط. قد يتم إضافة فك ترميز CSR في تحديث مستقبلي.

ما الفرق بين PEM و DER و CRT و PFX؟

PEM نص بـ Base64 مع ترويسات BEGIN/END (الامتدادات .pem و .crt و .cer). DER هو الشكل الثنائي ASN.1 الخام لنفس البيانات. أما CRT و CER فهما مجرد اسمي امتداد يمكن أن يحتوي أي منهما على PEM أو DER. و PFX/PKCS#12 حزمة ثنائية محمية بكلمة مرور يمكن أن تتضمن المفتاح الخاص، وتُستخدم أساسًا في Windows.

لماذا يقول متصفحي إن الشهادة غير صالحة رغم أنها تُفك دون مشاكل؟

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

هل من الآمن لصق شهادة SSL في هذه الأداة؟

نعم. شهادة SSL معلومات عامة — يتلقاها كل زائر لموقعك ولا تحتوي على أية أسرار. لكن لا تلصق مفتاحك الخاص في أي مكان أبدًا: هذه الأداة لا تحتاجه ولا تستطيع استخدامه.

ما الذي يجب أن تتضمنه سلسلة الشهادات وكم يجب أن يبلغ طولها؟

تتضمن السلسلة المُرسَلة شهادة الطرف النهائي بالإضافة إلى هيئات التصديق الوسيطة (intermediate CAs) التي تربطها بجذر موثوق — وعادةً ما يكون الإجمالي 2-3 شهادات. لا ينبغي إرسال الجذر نفسه: فالعملاء يحتفظون بالجذور مسبقاً في مخزن الثقة لديهم. إن غياب شهادة وسيطة هو السبب الأكثر شيوعاً على الإطلاق لأخطاء TLS من نوع «تعمل في متصفحي لكنها تفشل على الهاتف المحمول»، لأن بعض العملاء يخزّنون الشهادات الوسيطة مؤقتاً أو يخمّنونها بينما لا يفعل الآخرون ذلك.

كيف أتحقق من تواريخ انتهاء الصلاحية وأسماء SANs قبل أن تتسبب في انقطاع الخدمة؟

فك ترميز الشهادة واقرأ كتلة الصلاحية: notBefore هو تاريخ الإصدار وnotAfter هو تاريخ الانتهاء — خطِّط للتجديد قبل notAfter بـ 30 يوماً على الأقل. تُدرج أسماء SANs (Subject Alternative Names) كل اسم مضيف تغطيه الشهادة؛ وأي اسم غائب عن تلك القائمة يتسبب في خطأ اسم الشهادة (certificate-name) في المتصفحات حتى لو تطابق CN. تعرض هذه الأداة كلا الحقلين مفكَّكي ترميزهما في مكانهما.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}