ما هو ERR_SSL_VERSION_OR_CIPHER_MISMATCH؟
يظهر خطأ ERR_SSL_VERSION_OR_CIPHER_MISMATCH عندما لا يجد المتصفح وخادم الويب إصدارًا مشتركًا من بروتوكول TLS أو خوارزمية تشفير مشتركة (cipher suite). في هذه الحالة يتعذّر إنشاء اتصال آمن ولا تُحمَّل الصفحة.
في عام 2026 يتكرر هذا الخطأ خصوصًا بسبب إعدادات الخوادم القديمة، وإصدارات TLS غير المحدّثة، ومجموعات التشفير (cipher suites) الضعيفة. فالمتصفحات الحديثة لم تعد تدعم سوى TLS 1.2 وTLS 1.3.
تاريخ إصدارات TLS وحالة دعمها
| البروتوكول | السنة | الحالة (2026) | دعم المتصفحات |
|---|---|---|---|
| SSL 2.0 | 1995 | ❌ يجب عدم استخدامه | لا يوجد |
| SSL 3.0 | 1996 | ❌ يجب عدم استخدامه | لا يوجد |
| TLS 1.0 | 1999 | ❌ معطَّل | لا يوجد (أُزيل في 2020) |
| TLS 1.1 | 2006 | ❌ معطَّل | لا يوجد (أُزيل في 2020) |
| TLS 1.2 | 2008 | ✅ مدعوم | جميع المتصفحات الحديثة |
| TLS 1.3 | 2018 | ✅ موصى به | جميع المتصفحات الحديثة |
السبب 1: إصدار TLS قديم (TLS 1.0 / 1.1)
أزالت المتصفحات Chrome 84+ وFirefox 78+ وEdge 84+ وSafari 14+ دعم TLS 1.0 و1.1 بالكامل. فإذا كان خادمك لا يدعم سوى هذين الإصدارين القديمين، فلن يمكن الاتصال به من المتصفحات الحديثة.
الحل: تفعيل TLS 1.2 و1.3
# إعدادات Nginx
ssl_protocols TLSv1.2 TLSv1.3;
# إعدادات Apache
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
السبب 2: استخدام cipher suite ضعيفة
تحظر المتصفحات الحديثة خوارزميات التشفير الضعيفة مثل RC4 و3DES وDES. أما مجموعات NULL cipher فلا تجري أي تشفير على الإطلاق، وهي ممنوعة تمامًا.
الحل: إعداد cipher suite قوية
# Nginx - إعدادات cipher suite الموصى بها
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
# Apache
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
💡 نصيحة: يمكنك استخدام أداة Mozilla SSL Configuration Generator لإنشاء إعداد cipher مثالي يناسب نوع خادمك.
السبب 3: غياب دعم SNI (Server Name Indication)
الخوادم التي تستضيف أكثر من شهادة SSL على عنوان IP واحد تحتاج إلى دعم SNI. وبرمجيات الخوادم القديمة (ما قبل Apache 2.2 وما قبل OpenSSL 0.9.8) لا تدعم SNI.
الحل
- حدِّث برمجيات خادمك (Apache 2.4+ وجميع إصدارات Nginx تدعم SNI)
- رقِّ OpenSSL إلى أحدث إصدار
- يمكنك الاستغناء عن SNI باستخدام عنوان IP مخصَّص (Dedicated IP)
السبب 4: عدم تطابق الشهادة والمفتاح
قد يظهر هذا الخطأ أيضًا إذا لم تتطابق شهادة SSL مع المفتاح الخاص (private key).
أمر التحقق
# مقارنة modulus بين الشهادة والـ key
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in private.key | openssl md5
# يجب أن تتطابق المخرجتان
السبب 5: مشكلات مصدرها CDN أو Proxy
إذا كنت تستخدم خدمة CDN مثل Cloudflare، فقد يسبّب عدم توافق وضع SSL بين الخادم الأصلي (origin) وCDN هذا الخطأ.
الحل
- اضبط وضع SSL في Cloudflare على "Full (Strict)"
- تأكّد من وجود شهادة SSL صالحة على الخادم الأصلي
- يمكنك استخدام Cloudflare Origin Certificate
الاختبار باستخدام SSL Labs
بعد تعديل الإعدادات اختبر موقعك عبر Qualys SSL Labs (ssllabs.com/ssltest). الهدف: تقييم A+. تفحص الأداة قوة التشفير (cipher strength) ودعم البروتوكولات (protocol support) وسلسلة الشهادات (certificate chain) دفعة واحدة.
الخلاصة
ينشأ خطأ ERR_SSL_VERSION_OR_CIPHER_MISMATCH غالبًا عن نقص في إعدادات الخادم. ويُحَل بتفعيل TLS 1.2 و1.3، وإعداد مجموعات تشفير قوية، والتحقق من تطابق الشهادة مع المفتاح. ويمكنك إنشاء الإعداد الأمثل عبر Mozilla SSL Configuration Generator ثم التحقق منه عبر SSL Labs.