كل موقع يستقبل بيانات من زواره، حتى لو كان مجرد نموذج تواصل، ينقل معلومات قد يلتقطها أي طرف على الشبكة نفسها: مقهى بشبكة Wi-Fi مفتوحة، أو فندق، أو مطار. شهادة SSL (وتسميتها الأدق اليوم TLS) تحل مشكلتين معًا: تشفّر البيانات بين المتصفح والخادم، وتثبت أن الخادم الذي تتحدث معه هو فعلًا صاحب النطاق. والنتيجة الظاهرة للمستخدم هي https:// وأيقونة القفل.
كيف تعمل الشهادة باختصار؟
عند فتح موقع عبر HTTPS يجري ما يسمى مصافحة TLS:
- يرسل الخادم شهادته، وفيها اسم النطاق والمفتاح العام وتوقيع جهة الإصدار (CA).
- يتحقق المتصفح من أن الجهة موثوقة، وأن الشهادة لم تنتهِ، وأنها تغطي الاسم المطلوب.
- يتفق الطرفان على مفاتيح جلسة مؤقتة، ويُشفَّر كل ما بعد ذلك.
الإصدارات المقبولة اليوم هي TLS 1.2 وTLS 1.3؛ أما SSL 3.0 وTLS 1.0 و1.1 فمعطّلة في المتصفحات الحديثة. إذا كان خادمك لا يدعم إلا الإصدارات القديمة، فسيرى الزوار خطأ اتصال لا خطأ شهادة.
أنواع الشهادات: DV وOV وEV
| النوع | ما الذي يُتحقق منه؟ | مدة الإصدار | مناسب لـ |
|---|---|---|---|
| DV (التحقق من النطاق) | السيطرة على النطاق فقط | دقائق | المدونات، مواقع الشركات، معظم المتاجر |
| OV (التحقق من المنظمة) | النطاق + وجود الشركة قانونيًا | أيام | الشركات التي تريد إظهار اسمها في تفاصيل الشهادة |
| EV (التحقق الموسّع) | تدقيق أشمل لهوية الشركة | أيام إلى أسابيع | البنوك والجهات الحساسة |
المتصفحات لم تعد تعرض اسم الشركة الأخضر لشهادات EV في شريط العنوان، لذا تراجعت قيمتها التسويقية. من حيث التشفير، الأنواع الثلاثة متساوية.
ومن حيث التغطية هناك:
- شهادة لاسم واحد:
example.com(وغالبًا تُضافwwwمجانًا). - شهادة متعددة الأسماء (SAN): عدة نطاقات في شهادة واحدة.
- شهادة Wildcard:
*.example.comتغطي كل النطاقات الفرعية من مستوى واحد، لكنها لا تغطيa.b.example.com.
الشهادات المجانية وتقلص مدة الصلاحية
Let’s Encrypt جهة إصدار غير ربحية تقدم شهادات DV مجانية وتلقائية، وتدعمها معظم لوحات الاستضافة (cPanel وPlesk) وCloudflare. شهاداتها صالحة 90 يومًا وتُجدَّد آليًا عبر بروتوكول ACME.
اتجاه الصناعة واضح نحو مدد أقصر. وفق قرار CA/Browser Forum (SC-081):
- منذ 15 مارس 2026: الحد الأقصى 200 يوم.
- من 15 مارس 2027: 100 يوم.
- من 15 مارس 2029: 47 يومًا.
كما أعلنت Let’s Encrypt أنها ستقلص مدتها الافتراضية إلى 64 يومًا في 2027 ثم إلى 45 يومًا في 2028. الرسالة العملية: التجديد اليدوي لم يعد خيارًا واقعيًا. إذا كنت تشتري شهادة مدفوعة وتثبتها يدويًا مرة في السنة، فقد حان وقت الانتقال إلى التجديد الآلي.
أخطاء الشهادة الشائعة وحلولها
الشهادة منتهية (ERR_CERT_DATE_INVALID)
السبب الأكثر شيوعًا هو فشل التجديد التلقائي بصمت: تغيّر DNS، أو حُجب مسار التحقق /.well-known/acme-challenge/، أو انتهت صلاحية بطاقة الدفع. افحص تاريخ الانتهاء بانتظام عبر أداة فحص شهادة SSL. وتأكد أيضًا من صحة ساعة الجهاز؛ فالساعة الخاطئة على جهاز المستخدم تسبب الخطأ نفسه.
الاسم غير مطابق (ERR_CERT_COMMON_NAME_INVALID)
الشهادة صادرة لـ example.com والزائر يفتح www.example.com، أو العكس، أو لنطاق فرعي غير مشمول. الحل: أعد الإصدار مع كل الأسماء المطلوبة.
السلسلة غير مكتملة
يعمل الموقع في Chrome على الكمبيوتر، لكنه يفشل في بعض أجهزة أندرويد أو في أدوات الربط البرمجي. السبب أن الخادم يرسل شهادة الموقع دون الشهادة الوسيطة (intermediate). استخدم ملف fullchain بدل ملف الشهادة وحده.
المحتوى المختلط (Mixed Content)
الصفحة عبر HTTPS لكنها تحمّل صورة أو سكربت عبر http://. المتصفح يحجب السكربتات ويعرض تحذيرًا. ابحث في قاعدة البيانات والقوالب عن http://example.com واستبدلها، أو أضف هذا الرأس كحل مؤقت:
Content-Security-Policy: upgrade-insecure-requests
سجل CAA يمنع الإصدار
إذا كان لنطاقك سجل CAA يسمح لجهة معينة فقط، فستفشل أي جهة أخرى في الإصدار. راجع دليل سجلات DNS.
تحويل HTTP إلى HTTPS بشكل صحيح
تثبيت الشهادة نصف العمل. يجب أن يصل كل زائر وكل محرك بحث إلى نسخة HTTPS واحدة عبر تحويل 301 دائم.
مثال لخادم Apache في ملف .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
ومثال لخادم Nginx:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
بعد التطبيق، تحقق عبر أداة فحص التحويلات من أن http://www.example.com يصل إلى العنوان النهائي في خطوة واحدة، لا عبر سلسلة من ثلاث خطوات. شرحنا الفرق بين أنواع التحويل في دليل تحويلات 301 و302.
HSTS: الخطوة التالية
بعد التأكد من أن كل شيء يعمل عبر HTTPS، أضف رأس HSTS ليمنع المتصفح من محاولة HTTP أصلًا:
Strict-Transport-Security: max-age=31536000; includeSubDomains
ابدأ بقيمة max-age صغيرة، ولا تضف includeSubDomains إلا إذا كانت كل نطاقاتك الفرعية تعمل عبر HTTPS؛ فالتراجع عن HSTS صعب لأن المتصفحات تتذكره.
الشهادات مع Cloudflare وCDN
إذا كان موقعك خلف Cloudflare أو CDN آخر، فهناك اتصالان مشفّران: من الزائر إلى CDN، ومن CDN إلى خادمك. وضع SSL المسمى Flexible يشفّر الجزء الأول فقط، فيرى الزائر القفل بينما البيانات تنتقل دون تشفير بين CDN والخادم، وقد يسبب أيضًا حلقات تحويل لا تنتهي. الإعداد الصحيح هو Full (strict): شهادة صالحة على الخادم الأصلي أيضًا، سواء من Let’s Encrypt أو شهادة المصدر (Origin Certificate) التي يوفرها Cloudflare مجانًا.
البريد والنطاقات الفرعية
لا تنسَ أن خدمات أخرى على نطاقك تحتاج شهادات أيضًا: لوحة البريد على الويب، ونطاق api، ونطاقات المتجر أو الحجز. الشهادة المنتهية على mail.example.com قد توقف مزامنة البريد في هواتف الموظفين دون أن يلاحظ أحد أن الموقع الرئيسي سليم. احتفظ بقائمة بكل النطاقات الفرعية النشطة، وراقب تواريخ انتهاء شهاداتها جميعًا.
قائمة تحقق
- الشهادة سارية وتغطي
example.comوwww.example.comوكل النطاقات الفرعية المستخدمة. - التجديد آلي، ولديك تنبيه قبل الانتهاء بأسبوعين على الأقل.
- الخادم يرسل السلسلة الكاملة، ويدعم TLS 1.2 و1.3 فقط.
- كل HTTP يتحول بـ 301 في خطوة واحدة إلى عنوان HTTPS النهائي.
- لا يوجد محتوى مختلط في الصفحات الرئيسية والمتجر.
- رابط sitemap والروابط القانونية (canonical) تستخدم HTTPS.