0Pricing
AWS Solutions Architect · درس

إنهاء SSL والجلسات الثابتة

انقلوا معالجة TLS إلى موازن التحميل باستخدام شهادات ACM، ومكّنوا الجلسات الثابتة عندما تتطلب أعباء العمل ذات الحالة ارتباط العميل.

إنهاء SSL والجلسات الثابتة درس مجاني في AWS Solutions Architect على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AWS Solutions Architect، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

إنهاء SSL/TLS عند موازن التحميل

يعني إنهاء SSL/TLS أن موازن التحميل يفك تشفير حركة مرور HTTPS الواردة، ويفحص طلب HTTP ذي النص الواضح (لاتخاذ قرارات التوجيه)، ثم يعيد تشفير الطلب اختياريًا قبل تمريره إلى الخلفية. وعندما يحدث الإنهاء عند ALB، يمكن لخوادم التطبيق استقبال حركة مرور HTTP غير المشفرة من موازن التحميل، مما يبسّط إعداد الخلفية.

يقلل الإنهاء عند موازن التحميل الحمل على وحدة المعالجة المركزية لخوادم التطبيق (إذ لا تتولى الخوادم عملية TLS handshake لكل اتصال)، ويتيح التوجيه المستند إلى المحتوى (الذي يتطلب قراءة رؤوس HTTP)، ويدمج إدارة الشهادات في مكان واحد.

التكامل مع AWS Certificate Manager (ACM)

يوفّر AWS Certificate Manager (ACM) شهادات SSL/TLS ويديرها ويجددها دون تكلفة إضافية. يتكامل كل من ALB وNLB مباشرةً مع ACM: إذ تختار شهادة ACM في إعداد مستمع HTTPS، ثم يعرضها موازن التحميل على العملاء المتصلين.

يتم تجديد شهادات ACM تلقائيًا قبل انتهاء صلاحيتها—دون تجديد يدوي أو توقف بسبب انتهاء الشهادات. بالنسبة إلى الشهادات العامة، يتحقق ACM من ملكية النطاق عبر التحقق من DNS (سجل CNAME في Route 53) أو التحقق عبر البريد الإلكتروني. وللاستخدام الداخلي، يمكن لـ ACM Private CA إصدار شهادات خاصة.

# Request a public certificate in ACM
aws acm request-certificate \
  --domain-name api.example.com \
  --subject-alternative-names '*.example.com' \
  --validation-method DNS \
  --region us-east-1

# Create an HTTPS listener using the ACM certificate
aws elbv2 create-listener \
  --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:123456789:loadbalancer/app/my-alb/abc \
  --protocol HTTPS \
  --port 443 \
  --ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06 \
  --certificates CertificateArn=arn:aws:acm:us-east-1:123456789:certificate/cert-id \
  --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-tg/xyz

مؤشر اسم الخادم (SNI)

يُعد SNI (Server Name Indication) امتدادًا لـ TLS يتيح لعنوان IP واحد (وبالتالي لمستمع واحد في ALB أو NLB) تقديم عدة شهادات TLS لأسماء نطاقات مختلفة. يضمّن العميل اسم المضيف الذي يحاول الوصول إليه في رسالة TLS ClientHello، ثم يختار موازن التحميل الشهادة المناسبة.

يدعم ALB بروتوكول SNI بشكل أصلي: يمكنك إرفاق عدة شهادات ACM بمستمع HTTPS واحد. ويختار ALB الشهادة الصحيحة تلقائيًا استنادًا إلى اسم مضيف SNI لدى العميل. يلغي ذلك الحاجة إلى مستمع أو موازن تحميل منفصل لكل نطاق، مما يتيح الاستضافة الافتراضية الفعلية باستخدام SSL.

# Add a second certificate to an existing HTTPS listener (SNI)
aws elbv2 add-listener-certificates \
  --listener-arn arn:aws:elasticloadbalancing:us-east-1:123456789:listener/app/my-alb/abc/lis456 \
  --certificates CertificateArn=arn:aws:acm:us-east-1:123456789:certificate/second-cert-id

سياسات أمان SSL

يدعم كل من ALB وNLB سياسات أمان SSL القابلة للتهيئة، والتي تتحكم في إصدارات بروتوكول TLS ومجموعات التشفير التي يقبلها موازن التحميل من العملاء. توفّر AWS سياسات محددة مسبقًا (مثل ELBSecurityPolicy-TLS13-1-2-2021-06) ويتم تحديثها عند اكتشاف ثغرات جديدة.

قد تفرض متطلبات الامتثال إصدارات TLS محددة: يتطلب PCI-DSS 3.2.1 استخدام TLS 1.2 كحد أدنى؛ كما توصي العديد من المعايير الحديثة بتعطيل TLS 1.0 وTLS 1.1 بالكامل. استخدم سياسة تستبعد البروتوكولات المتقادمة ومجموعات التشفير الضعيفة. وفضّل السياسات التي تتضمن TLS 1.3 لتحقيق السرية الأمامية والأداء الأفضل.

# List available SSL policies
aws elbv2 describe-ssl-policies \
  --query 'SslPolicies[*].{Name:Name,TLSVersions:SslProtocols}' \
  --output table

التشفير من طرف إلى طرف مقابل الإنهاء

هناك نهجان متميزان لـ TLS على ALB:

  • إنهاء SSL (الأكثر شيوعًا): يفك ALB التشفير عند موازن التحميل، ثم يمرر HTTP عاديًا إلى الأهداف. وهو بسيط، ويتيح فحص التوجيه، ويقلل استخدام وحدة المعالجة المركزية على الخوادم. وتكون حركة المرور الخلفية غير مشفرة داخل VPC.
  • TLS من طرف إلى طرف: يفك ALB التشفير، ثم يعيد التشفير قبل التمرير إلى الأهداف (HTTPS بين ALB والهدف). يتطلب ذلك قدرة معالجة أكبر وشهادات على الأهداف، لكنه يضمن التشفير داخل VPC في سيناريوهات الامتثال الصارم.

في وضع تمرير TLS على NLB: لا يفك NLB التشفير على الإطلاق، بل يمرر TCP الخام إلى الهدف الذي يتولى معالجة TLS. ويدير خادم التطبيق شهادته الخاصة.

الجلسات الثابتة: ما هي ولماذا؟

تضمن الجلسات الثابتة (وتُسمى أيضًا تثبيت الجلسة) توجيه جميع الطلبات من العميل نفسه باستمرار إلى الهدف نفسه داخل مجموعة أهداف. ويكون ذلك ضروريًا للتطبيقات ذات الحالة التي تخزن بيانات الجلسة في الذاكرة على خوادم فردية (بدلًا من تخزينها في ذاكرة تخزين مؤقت مشتركة مثل ElastiCache).

من دون الجلسات الثابتة، قد يرسل موازن التحميل عديم الحالة الطلب 1 إلى الخادم A (الذي يخزن الجلسة) والطلب 2 إلى الخادم B (الذي لا يملك بيانات الجلسة)، مما يجعل المستخدم يبدو وكأنه سجّل الخروج أو يفقد محتويات سلة التسوق. تربط الجلسات الثابتة العميل بهدف محدد طوال مدة الجلسة.

الثبات المستند إلى ملفات تعريف الارتباط على ALB

يدعم ALB نوعين من ملفات تعريف ارتباط الجلسات الثابتة:

  • الثبات المستند إلى المدة (ملف تعريف ارتباط ينشئه موازن التحميل): ينشئ ALB ملف تعريف ارتباط باسم AWSALB (في حالة ALB) ويحدد مدة انتهاء صلاحيته. ويحتوي ملف تعريف الارتباط على مرجع مشفر إلى الهدف. ويرسل العميل ملف تعريف الارتباط هذا في الطلبات اللاحقة.
  • الثبات المستند إلى التطبيق: يستخدم ملف تعريف ارتباط موجودًا ينشئه تطبيقك. يقرأ ALB اسم ملف تعريف الارتباط الذي تحدده، وينشئ نسخة مشفرة منه في ملف تعريف ارتباط خاص به، ويستخدمها للتوجيه الثابت مع الحفاظ على ملف تعريف ارتباط التطبيق الأصلي.

يمكنك تهيئة الثبات لكل مجموعة أهداف، بمدة تتراوح من ثانية واحدة إلى 7 أيام.

# Enable duration-based sticky sessions on a target group
aws elbv2 modify-target-group-attributes \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-tg/xyz \
  --attributes \
    Key=stickiness.enabled,Value=true \
    Key=stickiness.type,Value=lb_cookie \
    Key=stickiness.lb_cookie.duration_seconds,Value=86400

عيوب الجلسات الثابتة

رغم أن الجلسات الثابتة تحل مشكلة التطبيقات ذات الحالة، فإنها تفرض بعض المفاضلات:

  • توزيع غير متساوٍ للحمل: قد تستقبل بعض الأهداف حركة مرور أكبر إذا كان بعض العملاء نشطين بشكل غير معتاد، مما يقوّض الغرض من موازنة التحميل
  • قيود التوسع: إذا أصبح الهدف الثابت غير سليم، تنقطع الجلسات؛ ويتعين على العميل بدء جلسة جديدة مع هدف آخر، ويفقد أي بيانات جلسة مخزنة في الذاكرة
  • مرونة أقل: تجعل الجلسات الثابتة تصريف المثيلات وإنهاءها أثناء أحداث تقليص السعة أكثر صعوبة

أفضل ممارسة: ألغِ الحاجة إلى الجلسات الثابتة من خلال إخراج حالة الجلسة إلى ElastiCache أو DynamoDB. يجعل ذلك تطبيقك عديم الحالة فعلًا ويتيح التوسع الأفقي الكامل.

مستمع TLS في NLB والتمرير

يدعم NLB مستمعي TLS على المنفذ 443 (أو أي منفذ) لإنهاء TLS، على نحو مشابه لـ ALB. يفك NLB تشفير حركة المرور، ويعيد تشفيرها اختياريًا، ثم يمررها إلى الأهداف. وبدلًا من ذلك، يمكن لـ NLB تمرير حركة مرور TCP المشفرة دون فك تشفيرها إذا قمت بتهيئة مستمع TCP؛ وفي هذا الوضع، يتولى خادم التطبيق معالجة TLS من طرف إلى طرف.

يوفر إنهاء TLS على NLB باستخدام ACM فوائد إدارة الشهادات نفسها التي يوفرها ALB، ولكن من دون ميزات طبقة HTTP. استخدم إنهاء TLS على NLB عندما تحتاج إلى عناوين IP ثابتة مع إنهاء TLS، أو عندما يكون بروتوكول الخلفية غير HTTP (مثل بروتوكول TCP مخصص).

التفاعل بين تصريف الاتصالات والجلسات الثابتة

عند إلغاء تسجيل هدف ثابت (مثلًا أثناء تقليص السعة في Auto Scaling)، يتيح تصريف الاتصالات إكمال الطلبات الجارية. ومع ذلك، تُعيَّن الطلبات الجديدة من العملاء ذوي الجلسات الثابتة الذين ما زالوا يحتفظون بملف تعريف الارتباط AWSALB الخاص بالهدف الجاري تصريفه إلى هدف جديد تلقائيًا، ويُبطل ملف تعريف ارتباط الثبات لهذا العميل.

يضمن هذا الجمع بين تأخير إلغاء التسجيل وإبطال ملف تعريف الارتباط انتقالًا سلسًا: إذ تكتمل الطلبات الحالية طويلة الأمد، بينما يُعاد توجيه الطلبات الجديدة من هؤلاء العملاء بسلاسة إلى أهداف سليمة دون ظهور أخطاء للمستخدم النهائي.

أفضل الممارسات لإدارة SSL والجلسات

أفضل الممارسات المهمة للاختبار:

  • استخدم شهادات ACM للتجديد التلقائي، ولا تدِر الشهادات يدويًا على موازنات التحميل مطلقًا
  • استخدم سياسات أمان TLS 1.2+، وعطّل TLS 1.0 وTLS 1.1 للامتثال لمتطلبات PCI/HIPAA
  • فضّل البنى عديمة الحالة (الجلسة في ElastiCache/DynamoDB) على الجلسات الثابتة
  • استخدم SNI على ALB لتقديم عدة نطاقات من مستمع واحد دون استخدام موازنات تحميل منفصلة لكل شهادة
  • للامتثال الصارم (يجب تشفير البيانات داخل VPC): استخدم مجموعات أهداف HTTPS مع TLS من طرف إلى طرف، وليس الإنهاء عند موازن التحميل فقط

تحقق سريع

اختبر مدى فهمك لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.

مراجعة الدرس

تعلّمت في هذا الدرس أن إنهاء ALB لـ SSL/TLS باستخدام شهادات ACM يوفر التجديد التلقائي وSNI لعدة نطاقات، وأن سياسات أمان SSL تتحكم في إصدار TLS ومجموعات التشفير للامتثال، وأن الجلسات الثابتة توجّه المستخدمين إلى الهدف نفسه في التطبيقات ذات الحالة، لكن من الأفضل استبدالها بإخراج حالة الجلسة إلى ElastiCache. بعد ذلك، سنستكشف مجموعات Auto Scaling وقوالب التشغيل.

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

هل درس «إنهاء SSL والجلسات الثابتة» مجاني؟

نعم — نص درس «إنهاء SSL والجلسات الثابتة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AWS Solutions Architect، انتقل إلى CoddyKit PRO. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

ماذا ستتعلم في «إنهاء SSL والجلسات الثابتة»؟

انقلوا معالجة TLS إلى موازن التحميل باستخدام شهادات ACM، ومكّنوا الجلسات الثابتة عندما تتطلب أعباء العمل ذات الحالة ارتباط العميل. تتمرن على AWS Solutions Architect مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AWS Solutions Architect؟

لا تُشترط خبرة سابقة. AWS Solutions Architect على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «إنهاء SSL والجلسات الثابتة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AWS Solutions Architect هذا؟

نعم. كل درس في AWS Solutions Architect يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ALB مقابل NLB مقابل GLB: متى تستخدمون كلًا منها
  2. مجموعات الأهداف وفحوصات السلامة
  3. قواعد المستمع والتوجيه المستند إلى المسار
  4. إنهاء SSL والجلسات الثابتة
← العودة إلى AWS Solutions Architect