كيف يعمل HTTPS و TLS حقًا: المصافحة والشهادات

Security2026-10-30TryQuickToolBox

لماذا HTTPS مهم (ولماذا يُفهم بشكل خاطئ)

ربما رأيت أيقونة القفل في متصفحك وافترضت أن الموقع "آمن". لكن ماذا يعني ذلك حقًا؟ HTTPS لا يتعلق فقط بالتشفير؛ بل يتعلق بالهوية والسلامة والثقة. يعامل العديد من المطورين TLS كصندوق أسود—يقومون بتكوينه مرة واحدة وينسون الأمر. يؤدي ذلك إلى تكوينات خاطئة وشهادات منتهية الصلاحية ومجموعات تشفير ضعيفة.

في هذه المقالة، سنشرح كيف يعمل HTTPS و TLS فعليًا، من المصافحة إلى التحقق من الشهادة، ونوضح لك كيفية إعداده بشكل صحيح. لا حشو، فقط معرفة عملية يمكنك تطبيقها اليوم.

مصافحة TLS: ما يحدث قبل أول بايت

عندما يتصل العميل (المتصفح) بخادم عبر HTTPS، فإنهما يقومان بمصافحة TLS. هذا ينشئ قناة آمنة. إليك نسخة مبسطة (TLS 1.3):

  1. Client Hello: يرسل العميل مجموعات التشفير المدعومة وقيمة عشوائية ومشاركة مفتاح (لتبادل المفاتيح).
  2. Server Hello: يختار الخادم مجموعة تشفير، ويرسل قيمته العشوائية ومشاركته للمفتاح، ويقدم سلسلة شهاداته.
  3. المصادقة: يتحقق العميل من شهادة الخادم مقابل جهات إصدار الشهادات الموثوقة ويتحقق من اسم المضيف.
  4. اشتقاق المفتاح: يحسب الطرفان السر المشترك باستخدام ECDHE (Diffie-Hellman البيضاوي المنحنى المؤقت).
  5. الانتهاء: يرسل كلاهما رسائل "Finished" المشفرة لتأكيد المصافحة.

بعد ذلك، يتم تشفير بيانات التطبيق بمفاتيح متماثلة. يقلل TLS 1.3 من عدد الرحلات إلى رحلة واحدة، مما يحسن زمن الاستجابة.

تبادل المفاتيح: ECDHE مقابل RSA

استخدمت إصدارات TLS الأقدم تبادل مفاتيح RSA، الذي يفتقر إلى السرية الأمامية. إذا تم اختراق المفتاح الخاص للخادم، يمكن فك تشفير حركة المرور السابقة. تستخدم الإعدادات الحديثة ECDHE، الذي يوفر السرية الأمامية—كل جلسة لها مفاتيح فريدة.

# مثال: التحقق من خوارزميات تبادل المفاتيح المدعومة
openssl s_client -connect example.com:443 -cipher 'ECDHE'

الشهادات: مراسي الثقة

تربط الشهادة مفتاحًا عامًا بهوية (اسم النطاق). يتم توقيعها من قبل جهة إصدار شهادات (CA) يثق بها العميل. تأتي المتصفحات مع مخزن لجهات إصدار الشهادات الجذرية الموثوقة.

عند زيارة موقع، يرسل الخادم سلسلة: شهادة الورقة (لنطاقك) → CA الوسيطة → CA الجذرية. يتحقق العميل من كل توقيع حتى يصل إلى جذر موثوق.

أنواع الشهادات

خطوات التحقق من الشهادة

تتحقق المتصفحات من:

إذا فشل أي فحص، تحصل على تحذير. لا تتجاوز هذه التحذيرات في الإنتاج أبدًا.

تكوين HTTPS على خادمك

لنلقِ نظرة على تكوين Nginx النموذجي لـ HTTPS مع إعدادات TLS الحديثة.

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers off;

    # HSTS (استخدمه بحذر)
    add_header Strict-Transport-Security "max-age=63072000" always;
}

ملاحظات:

الحصول على الشهادات باستخدام Let's Encrypt

يوفر Let's Encrypt شهادات DV مجانية. استخدم Certbot لأتمتة الإصدار والتجديد:

sudo certbot --nginx -d example.com -d www.example.com

يعدل Certbot تكوين Nginx الخاص بك ويقوم بإعداد مهمة cron للتجديد. اختبر التجديد دائمًا باستخدام --dry-run.

المزالق الشائعة وكيفية تجنبها

اختبار تكوين HTTPS الخاص بك

استخدم أدوات عبر الإنترنت مثل SSL Labs أو أدوات سطر الأوامر للتحقق من إعدادك.

# التحقق من تفاصيل الشهادة
openssl s_client -connect example.com:443 -servername example.com | openssl x509 -noout -text

# اختبار دعم TLS 1.3
openssl s_client -connect example.com:443 -tls1_3

ابحث عن:

الأسئلة الشائعة

ما الفرق بين TLS و SSL؟

SSL هو سلف TLS. كان TLS 1.0 في الأساس SSL 3.1. اليوم، غالبًا ما يستخدم "SSL" بشكل عام، لكن يجب عليك دائمًا استخدام TLS 1.2 أو 1.3.

هل أحتاج إلى شهادة مدفوعة لـ HTTPS؟

لا. شهادات DV المجانية من Let's Encrypt موثوقة من قبل جميع المتصفحات الرئيسية وتوفر نفس التشفير مثل الشهادات المدفوعة. تقدم الشهادات المدفوعة ضمانات ودعمًا، لكن التشفير متطابق.

كيف يؤثر HTTPS على الأداء؟

يضيف TLS زمن استجابة بسبب المصافحة، لكن TLS 1.3 يقلله إلى رحلة ذهاب وعودة واحدة. مع استئناف الجلسة و HTTP/2، يكون الحمل ضئيلاً. تكاليف التشفير/فك التشفير منخفضة على وحدات المعالجة المركزية الحديثة.

هل أنت مستعد لفحص تكوين TLS لخادمك؟ استخدم محلل سجلات Nginx لدينا لاكتشاف أنماط حركة المرور غير العادية والتأكد من أن إعداد HTTPS يعمل كما هو متوقع.