انتقل إلى المحتوى الرئيسي
شهادات SSL من DigiCert وSectigo وGeoTrust
+90 850 259 76 06 WhatsApp الدعم كن موزّعًا
شهادات SSL
العلامات التجارية
توقيع الكود رمز LEI
أدوات
الدعم اتصل بنا WhatsApp السلة
اللغة
العملة
الحصول على شهادة SSL
أمان SSL

أخطاء سلسلة شهادات SSL: خطأ Incomplete Chain وحلّه

أخطاء سلسلة شهادات SSL (certificate chain): كيفية اكتشاف مشكلات incomplete chain و wrong order و expired intermediate وحلّها.

10 دقيقة قراءة

ما هي سلسلة شهادات SSL (Certificate Chain)؟

يقوم أمان SSL على سلسلة ثقة (chain of trust). فكل شهادة SSL تكتسب موثوقيتها بتوقيع الهيئة التي تعلوها:

شهادة Root CA ← الشهادة (الشهادات) الوسيطة (Intermediate) ← شهادة الموقع

لا تثق المتصفحات بصورة مضمّنة إلا بشهادات root CA. ويجب أن تكون كل حلقة في السلسلة من شهادة الموقع حتى الـ root قابلة للتحقق. فإذا كانت إحدى الحلقات مفقودة أو معطوبة ظهر خطأ سلسلة الشهادات.

أخطاء سلسلة الشهادات الشائعة

1. Incomplete Chain (سلسلة ناقصة)

هو أكثر أخطاء السلسلة شيوعًا. تكون شهادة الموقع وحدها مثبّتة على الخادم، والشهادة (الشهادات) الوسيطة مفقودة.

الأعراض

  • يعمل الموقع في Chrome لكنه يعطي خطأ في Firefox (يستطيع Chrome تنزيل الشهادة المفقودة بفضل دعم AIA، أما Firefox فلا يستطيع)
  • يعمل على سطح المكتب لكنه يعطي خطأ على الجوال
  • يُظهر اختبار SSL Labs الرسالة "Chain issues: Incomplete"

الحل

# نزّل الشهادة الوسيطة وأنشئ fullchain
cat your_domain.crt intermediate.crt > fullchain.pem

# Nginx
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/private.key;

# Apache
SSLCertificateFile /etc/ssl/your_domain.crt
SSLCertificateChainFile /etc/ssl/intermediate.crt

2. Wrong Order (ترتيب خاطئ)

إذا كان ترتيب دمج ملفات الشهادات خاطئًا ظهرت مشكلات على بعض المنصات.

الترتيب الصحيح

  1. شهادة الموقع (leaf / end-entity)
  2. الشهادة الوسيطة 1 (التي وقّعت شهادة الموقع)
  3. الشهادة الوسيطة 2 (إن وُجدت، وهي التي وقّعت الشهادة الوسيطة 1)
  4. شهادة الـ root لا تُضاف (فهي مضمّنة في المتصفح)
# تحقق من الترتيب
openssl s_client -connect domain.com:443 -showcerts 2>/dev/null | grep "s:" | head -10

# الترتيب في المخرجات:
# s:CN = yourdomain.com         (site cert)
# s:CN = Sectigo RSA Domain Validation Secure Server CA  (intermediate)
# ...يجب أن تكون بالترتيب الصحيح

3. Expired Intermediate (شهادة وسيطة منتهية الصلاحية)

حتى لو كانت شهادة موقعك سارية، فقد تكون صلاحية الشهادة الوسيطة قد انتهت. وفي هذه الحالة يتعذّر التحقق من السلسلة.

الحل

# تحقق من تاريخ الشهادة الوسيطة
openssl x509 -in intermediate.crt -noout -dates

# إذا انتهت صلاحيتها، نزّل الشهادة الوسيطة المحدثة من الـ CA
# Sectigo: https://support.sectigo.com/articles/Knowledge/Sectigo-Intermediate-Certificates
# DigiCert: https://www.digicert.com/kb/digicert-root-certificates.htm

4. مشكلات سلسلة Cross-Signed

تستخدم بعض هيئات الشهادات (وخصوصًا Let's Encrypt) سلسلة cross-signed للتوافق مع الأجهزة القديمة. وقد تظهر حالات عدم توافق أثناء الانتقال إلى الـ root الجديد.

مثال Let's Encrypt

  • السلسلة الطويلة: DST Root CA X3 → ISRG Root X1 → شهادة وسيطة → Site Cert (cross-sign لدعم أجهزة Android القديمة؛ انتهت صلاحية هذا التوقيع المتقاطع في 2024 ولم يعد مستخدمًا)
  • السلسلة القصيرة: ISRG Root X1 → شهادة وسيطة → Site Cert (السلسلة المستخدمة اليوم)
  • يختار Certbot السلسلة الصحيحة افتراضيًا؛ وإذا كانت هيئة الشهادات تقدّم أكثر من سلسلة يمكن تحديد المفضلة عبر --preferred-chain

أدوات اختبار سلسلة الشهادات

الأداةالميزةالوصول
SSL Labsتحليل شامل للسلسلة وتقرير chain issuesssllabs.com/ssltest
DATASSL SSL Checkerفحص سريع لسلسلة الشهاداتdatassl.com/ssl-checker
whatsmychaincert.comاكتشاف تلقائي للشهادات الوسيطة المفقودة وإنشاء bundlewhatsmychaincert.com
OpenSSL CLIفحص تفصيلي لسلسلة الشهاداتسطر الأوامر

أوامر التحقق من سلسلة الشهادات

# اعرض جميع الشهادات التي يعيدها الخادم
openssl s_client -connect domain.com:443 -showcerts

# معلومات كل شهادة في السلسلة
openssl s_client -connect domain.com:443 -showcerts 2>/dev/null | \
  awk '/BEGIN/{cert=""} {cert=cert$0"\n"} /END/{print cert | "openssl x509 -noout -subject -issuer -dates"}'

# تحقق من السلسلة
openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt site.crt

الخلاصة

أخطاء سلسلة الشهادات من أكثر مصادر مشكلات SSL شيوعًا. وتثبيت الشهادات الوسيطة الصحيحة بالترتيب الصحيح، وهي خطوة بهذه البساطة، يحل الغالبية العظمى من المشكلات. يمكنك اكتشاف الشهادات المفقودة تلقائيًا عبر whatsmychaincert.com، والتحقق من إعداداتك عبر SSL Labs.

شارك هذه المقالة
Ali Yiğit
Yazar

Ali Yiğit

شهادات SSL الموصى بها

جميع المنتجات
EV DigiCert

DigiCert Basic EV SSL

تحقق موسّع مع DigiCert Basic EV SSL. يظهر اسم المؤسسة في تفاصيل الشهادة، مع ضمان $1,500,000 وتوافق ي

$381.82 /سنة
التفاصيل
EV DigiCert

DigiCert EV Multi-Domain

احمِ عدة نطاقات بتحقق موسّع مع DigiCert EV Multi-Domain. 250 SAN وضمان $1,500,000 وختم موقع DigiCert

$766.92 /سنة
التفاصيل
EV DigiCert

DigiCert Secure Site EV

تحقق موسّع مع DigiCert Secure Site EV. يشمل DigiCert Smart Seal وتقييم الثغرات الأمنية وفحص البرمجيا

$993.51 /سنة
التفاصيل