ما هو SSL/TLS؟
SSL (طبقة المقابس الآمنة) و TLS (أمان طبقة النقل) هي بروتوكولات تشفيرية تأمين الاتصال عبر الشبكات. TLS هو الخليفة الحديث لـ SSL، لكن "SSL" لا يزال يُستخدم بشكل شائع للإشارة إلى كليهما. تتيح هذه البروتوكولات HTTPS، تشفير البيانات بين المتصفحات والخوادم.
SSL مقابل TLS: تاريخ موجز
| الإصدار | السنة | الحالة |
|---|---|---|
| SSL 1.0 | 1994 | لم يتم الإصدار مطلقاً (معيب) |
| SSL 2.0 | 1995 | موقوف (غير آمن) |
| SSL 3.0 | 1996 | موقوف (ثغرة POODLE) |
| TLS 1.0 | 1999 | موقوف |
| TLS 1.1 | 2006 | موقوف |
| TLS 1.2 | 2008 | المعيار الحالي |
| TLS 1.3 | 2018 | الأحدث، موصى به |
يجب أن تستخدم الأنظمة الحديثة TLS 1.2 أو TLS 1.3 حصرياً.
كيفية عمل TLS
مصافحة TLS
1. Client Hello: يرسل المتصفح إصدارات TLS المدعومة وأجنحة التشفير
2. Server Hello: يختار الخادم إصدار TLS وجناح التشفير
3. الشهادة: يرسل الخادم شهادة SSL الخاصة به
4. تبادل المفاتيح: تبادل مفاتيح آمن (يختلف حسب جناح التشفير)
5. Finished: تم إنشاء جلسة مشفرة
العميل الخادم
|-- Client Hello -------------->|
|<-- Server Hello --------------|
|<-- Certificate ---------------|
|<-- Key Exchange --------------|
|-- Key Exchange -------------->|
|-- Finished ------------------>|
|<-- Finished ------------------|
|<======= Encrypted Session ===>|
TLS 1.3 يقلل هذا إلى جولة واحدة، مما يحسن الأداء.
شهادات SSL/TLS
ما الموجود في الشهادة؟
- الموضوع: أسماء النطاقات التي تغطيها الشهادة
- المُصدر: سلطة الشهادات (CA) التي أصدرتها
- فترة الصلاحية: تواريخ البدء والانتهاء
- المفتاح العام: لإنشاء اتصالات مشفرة
- التوقيع: توقيع تشفيري من CA
أنواع الشهادات
Domain Validated (DV): يثبت ملكية النطاق فقط- صُدرت في دقائق
- مجاني (Let's Encrypt) أو منخفض التكلفة
- يعرض القفل، لا توجد معلومات منظمة
- يتطلب التحقق من الأعمال
- يعرض اسم المنظمة في تفاصيل الشهادة
- ثقة أعلى، تكلفة معتدلة
- التحقق الدقيق من الهوية
- عرض شريط أخضر سابقاً (أزالت المتصفحات هذا)
- أعلى تكلفة، أعلى ثقة
تغطية الشهادة
النطاق الواحد: يغطي نطاق واحد (example.com) Wildcard: يغطي جميع النطاقات الفرعية (*.example.com) Multi-Domain (SAN): يغطي نطاقات محددة متعددةتطبيق SSL/TLS
شهادات مجانية مع Let's Encrypt
# استخدام Certbot
sudo certbot --nginx -d example.com -d www.example.com
# التجديد التلقائي
sudo certbot renew --dry-run
شهادات مزود الخدمة السحابية
تقدم معظم منصات السحابة شهادات مجانية وقابلة للتجديد التلقائي:
- Cloudflare: تلقائي للنطاقات المُعاد توجيهها
- AWS: Certificate Manager (ACM)
- Google Cloud: شهادات SSL مُدارة
التحقق من الشهادة
تتحقق المتصفحات من الشهادات من خلال:
1. فحص سلسلة الشهادات إلى CA جذري موثوق
2. التحقق من أن الشهادة لم تنتهي صلاحيتها
3. تأكيد مطابقة النطاق
4. فحص حالة الإلغاء (CRL/OCSP)
أفضل ممارسات SSL/TLS
إعداد الخادم
استخدم TLS 1.2+: عطّل SSL 3.0 و TLS 1.0 و TLS 1.1ssl_protocols TLSv1.2 TLSv1.3;
أجنحة التشفير القوية: فضّل الأجنحة الحديثة والآمنة
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
HSTS: فرض HTTPS (انظر إدخال HSTS)
إدارة الشهادات
- جدول التجديد التلقائي: تنتهي صلاحية الشهادات (90 يوم لـ Let's Encrypt)
- راقب انتهاء الصلاحية: عيّن تنبيهات قبل انتهاء صلاحية الشهادات
- استخدم سجلات CAA: قيّد CAs التي يمكنها إصدار شهادات
التحقق من SSL/TLS
استخدام DomScan:curl "https://domscan.net/v1/health?domain=example.com"
# يرجع صلاحية SSL و المُصدر والانتهاء
استخدام OpenSSL:
openssl s_client -connect example.com:443 -servername example.com
أدوات الإنترنت: SSL Labs (ssllabs.com/ssltest) توفر تحليل شامل.
مشاكل SSL الشائعة
محتوى مختلط: صفحة HTTPS تحمل موارد HTTP (محظور بواسطة المتصفحات) عدم تطابق الشهادة: الشهادة لا تطابق النطاق انتهاء صلاحية الشهادة: انتهت فترة صلاحية الشهادة سلسلة غير كاملة: سجلات وسيطة مفقودةSSL/TLS لم يعد اختياري — يجب أن تستخدم جميع مواقع الويب HTTPS للأمان وفوائد SEO.