كيف يعمل HTTPS وTLS حقًا: دليل عملي

Security2026-10-26TryQuickToolBox

المشكلة: HTTPS في كل مكان، لكن كيف يعمل فعليًا؟

ترى أيقونة القفل في متصفحك وتفترض أن اتصالك آمن. ولكن عندما يحدث خطأ ما—خطأ في الشهادة، تحذير محتوى مختلط، أو مصافحة TLS بطيئة—تحتاج إلى فهم ما يحدث تحت الغطاء. يشرح هذا الدليل HTTPS وTLS إلى أجزاء عملية سهلة الفهم حتى تتمكن من تصحيح وتحسين الاتصالات الآمنة.

HTTPS هو ببساطة HTTP فوق TLS (أمان طبقة النقل). يوفر TLS التشفير والمصادقة والسلامة. دعنا نستعرض كيفية عمله خطوة بخطوة.

ما الذي يفعله TLS فعليًا

يحل TLS ثلاث مشاكل أساسية:

بدون TLS، تكون حركة HTTP نصًا عاديًا—يمكن لأي شخص على مسار الشبكة قراءتها أو تعديلها. يغلف TLS بروتوكول HTTP في نفق مشفر.

مصافحة TLS: خطوة بخطوة

قبل تدفق أي بيانات HTTP، يقوم العميل والخادم بإجراء مصافحة للاتفاق على معايير التشفير. إليك التدفق النموذجي لـ TLS 1.2 (TLS 1.3 أسرع لكنه مشابه في المفهوم):

  1. Client Hello: يرسل العميل إصدارات TLS المدعومة، مجموعات التشفير، وقيمة عشوائية.
  2. Server Hello: يختار الخادم إصدار TLS ومجموعة التشفير، ويرسل قيمته العشوائية الخاصة.
  3. الشهادة: يرسل الخادم سلسلة شهادته، بما في ذلك مفتاحه العام وإثبات الهوية.
  4. تبادل المفاتيح: باستخدام الشهادة، يتفق العميل والخادم بشكل آمن على سر مشترك (pre-master secret) باستخدام خوارزميات مثل ECDHE.
  5. Finished: يتحقق كلا الجانبين من المصافحة وينتقلان إلى الاتصال المشفر باستخدام مفاتيح متماثلة مشتقة من السر المشترك.

يقلل TLS 1.3 من هذا إلى رحلة ذهاب وإياب واحدة (1-RTT) ويدعم حتى 0-RTT للجلسات المستأنفة، مما يجعل الاتصالات أسرع.

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

تربط الشهادة مفتاحًا عامًا بهوية (مثل اسم نطاق). يتم توقيعها من قبل جهة إصدار شهادات (CA) يثق بها العميل. عندما يتصل متصفحك بـ https://example.com، فإنه يتحقق من:

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

أخطاء الشهادات الشائعة وإصلاحها

الخطأالسبب المحتملالإصلاح
NET::ERR_CERT_COMMON_NAME_INVALIDالشهادة لا تتطابق مع النطاقأعد إصدار الشهادة مع أسماء بديلة للموضوع (SANs) الصحيحة
NET::ERR_CERT_AUTHORITY_INVALIDموقعة ذاتيًا أو CA غير موثوقةاستخدم CA موثوقة أو قم بتثبيت CA في مخزن الثقة
NET::ERR_CERT_DATE_INVALIDمنتهية الصلاحية أو غير صالحة بعدجدد الشهادة وتحقق من ساعة النظام

التشفير في الممارسة: متماثل مقابل غير متماثل

يستخدم TLS كلا النوعين من التشفير:

يُستخدم السر المشترك من المصافحة لاشتقاق مفاتيح جلسة متماثلة. يمنحك هذا النهج الهجين الأمان والأداء.

تصحيح اتصالات TLS

عندما يتصرف HTTPS بشكل خاطئ، تحتاج إلى فحص المصافحة. إليك أوامر وتقنيات عملية:

1. فحص تفاصيل الشهادة باستخدام OpenSSL

openssl s_client -connect example.com:443 -servername example.com </dev/null

يطبع هذا سلسلة الشهادة، مجموعة التشفير، وتفاصيل المصافحة. ابحث عن Verify return code: 0 (ok) لتأكيد الثقة.

2. اختبار إصدارات TLS ومجموعات التشفير

nmap --script ssl-enum-ciphers -p 443 example.com

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

3. التحقق من رؤوس أمان HTTP

استخدم أدوات مطوري المتصفح (علامة التبويب Security) لمعرفة ما إذا كانت الصفحة آمنة بالكامل. المحتوى المختلط (موارد HTTP على صفحة HTTPS) يثير تحذيرات ويمكن أن يعطل الوظائف.

4. تحليل سجلات الخادم لأخطاء TLS

إذا كنت تدير Nginx، تظهر حالات فشل مصافحة TLS في سجلات الأخطاء. على سبيل المثال:

2025/01/01 12:00:00 [error] 1234#0: *5 SSL_do_handshake() failed (SSL: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown) while SSL handshaking, client: 203.0.113.1, server: 0.0.0.0:443

يشير هذا إلى أن العميل رفض الشهادة. تحقق من سلسلة شهادتك والتكوين.

تحسين TLS للأداء

يضيف TLS زمن وصول، لكن يمكنك تقليله:

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

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

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

HTTPS هو HTTP فوق TLS. TLS هو البروتوكول الذي يوفر التشفير والمصادقة. لذا HTTPS هو النسخة الآمنة من HTTP، مدعومة بـ TLS.

كيف يحسن TLS 1.3 على TLS 1.2؟

يقلل TLS 1.3 المصافحة إلى رحلة ذهاب وإياب واحدة (1-RTT) ويدعم 0-RTT للجلسات المستأنفة. كما يزيل الخوارزميات التشفيرية القديمة والضعيفة، مما يبسط التكوين ويحسن الأمان.

لماذا أحصل على أخطاء شهادة في التطوير؟

غالبًا ما تستخدم خوادم التطوير شهادات موقعة ذاتيًا، والتي لا تثق بها المتصفحات افتراضيًا. يمكنك إما إضافة الشهادة إلى مخزن الثقة أو استخدام أداة مثل mkcert لإنشاء شهادات موثوقة محليًا.

هل تحتاج إلى فحص أو تصحيح سجلات الخادم بسرعة لأخطاء TLS؟ جرب Nginx Log Analyzer الخاص بنا لتحليل وتصفية إدخالات السجل في متصفحك.