خطا Misdirected Request عند دخول موقع الانترنت

من ويكي مسار
مراجعة ١٠:٣١، ٢٧ يوليو ٢٠٢٥ بواسطة Massaradmin (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

خطأ Misdirected Request (SNI Error)

في سيرفر Apache أشارت التقارير الي حدوث تحديث ل Apache2.4.64 و هذا التغيير في Apache ليس خطأ برمجيًا وإنما نتيجة تشديد التحقق الأمنى في النسخة 2.4.64، لكن هذا أثر على توافق البروكسيات مع Apache، خصوصاً في بيئات CloudLinux مع EasyApache 4.

حيث يظهر الخطا "421 Misdirected Request" عن زيارة الموقع ، ولو قمنا بفحص محتوى الملف "/etc/apache2/logs/error_log" فاننا سوف نشاهد شبية بالكود التالي عند حدوث ذلك الخطا:

[Sun Jul 27 12:55:12.193831 2025] [ssl:error] [pid 13957:tid 13962] [client XX.XX.XX.XX:0] AH02032: Hostname serverhostname.tld (default host as no SNI was provided) and hostname example.com provided via HTTP have no compatible SSL setup, referer: https://example.com
[Sun Jul 27 12:56:18.915044 2025] [ssl:error] [pid 13997:tid 14050] [client XX.XX.XX.XX:64441] AH02032: Hostname serverhostname.tld (default host as no SNI was provided) and hostname example.net provided via HTTP have no compatible SSL setup
[Sun Jul 27 12:56:21.686100 2025] [ssl:error] [pid 13997:tid 14029] [client XX.XX.XX.XX:64447] AH02032: Hostname serverhostname.tld (default host as no SNI was provided) and hostname example.net provided via HTTP have no compatible SSL setup

ما هو خطأ Misdirected Request؟

يظهر خطأ Misdirected Request عند محاولة المتصفح الوصول إلى موقع ويب باستخدام بروتوكول HTTPS، لكن الطلب لا يتوافق مع اسم الخادم (Host Name) المحدد في إعدادات اتصال TLS/SSL.

تتضمن الرسالة غالبًا النص التالي:

The client needs a new connection for this request as the requested host name does not match the Server Name Indication (SNI) in use for this connection.

السبب الرئيسي للخطأ

  • هذا الخطأ مرتبط بميزة Server Name Indication (SNI) المستخدمة في بروتوكول HTTPS لتمييز النطاقات المختلفة المستضافة على نفس الخادم. - يحصل الخطأ عند وجود عدم تطابق بين اسم النطاق المطلوب (Host) والشهادة الرقمية (SSL Certificate) المعروضة من الخادم.
  • بعض المتصفحات (مثل Safari على أجهزة iOS) قد تعيد استخدام اتصال TLS سابق مع اسم نطاق مختلف، مما يؤدي إلى ظهور هذا الخطأ.
  • بسبب الحاجه لتحديث بعض البرمجيات في السيرفر التي تحدث خللا او تعارضا. لسيرفرات CloudLinux/Cpanel راجع الرابط التالي.

متى يظهر الخطأ؟

  • عند الدخول إلى الموقع عبر نطاق فرعي (Subdomain) أو نطاق غير مضاف بشكل صحيح إلى الشهادة.
  • في حال وجود بروكسي (Proxy) أو خدمة CDN (مثل Cloudflare) لم يتم تهيئتها بشكل صحيح.
  • بسبب مشاكل في الذاكرة المؤقتة (Cache) الخاصة بالمتصفح.

كيفية حل المشكلة

  1. في الاغلب يتطلب الموضوع تدير مدير السيرفر للتاكد من حل هذه المشكلة.

يمكن لمدير السيرفر بالتاكد بطرق مختلفة:


ولكن اذا تاكد مدير السيرفر من احل المشكلة واستمرت المشكلة بالظهور لدى زائر الموقع عندها يجب التاكد من:

  1. حذف الكاش من المتصفح (Clear History and Website Data).
  2. إعادة فتح المتصفح أو تجربة متصفح آخر (مثل Chrome أو Firefox).
  3. التحقق من إعدادات SSL على الخادم والتأكد أن شهادة SSL تغطي جميع النطاقات المطلوبة (خصوصًا `go.massar.cloud`).
  4. إذا كان هناك خدمة وسيطة مثل Cloudflare، تحقق من إعدادات الـ **HTTP/2** أو إعدادات إعادة التوجيه (Redirects).

التحقق من الشهادة عبر OpenSSL - متقدم - لمدراء الانظمة

بعض الاحيان قد تحتاج للتحقق من شهادة SSL

يمكن استخدام الأمر التالي لفحص شهادة النطاق يدويًا مع SNI: (مع استبدال Example برابط الموقع المطلوب فحصه)

openssl s_client -connect example.com:443 -servername example.com -showcerts

- يجب التأكد أن اسم النطاق `example.com` يظهر في حقل Subject أو ضمن Subject Alternative Name (SAN). - إذا ظهر الخطأ:

verify error:num=62:Hostname mismatch

فهذا يعني أن الشهادة غير متطابقة مع اسم النطاق.

خلاصة

خطأ Misdirected Request مرتبط غالبًا بمشاكل إعداد SNI أو الشهادات الرقمية، وأحيانًا بذاكرة المتصفح المؤقتة.

الحل عادة يكون إما عبر إصلاح إعدادات SSL على الخادم أو تحديث المتصفح/حذف الكاش، خصوصًا عند استخدام متصفح Safari على أجهزة iOS.

او في كثير من الاحيان فان الامر يحتاج لاجراء بعض التحديثات على السيرفر