Apache HTTPD / التمثيل والوكالة والسعة / الدرس 10
TLS وSNI والشهادات وحدود الوكالة
افصل هوية النقل والتوجيه والتفويض دون توليد مفتاح أو اتصال.
في هذه الصفحة
أهداف الدرس
- شرح اختيار SNI وتغطية الاسم مفاهيمياً.
- مراجعة TLS الأمامي والخلفي كثقتين.
تبدأ TLS قبل طلب HTTP العادي
يتفاوض العميل ويتحقق من هوية الخادم وفق ثقته، وقد يرسل SNI لاختيار شهادة المضيف. يأتي Host لاحقاً ولا يصلح تعديله خطأ الهوية الذي وقع في المصافحة. يحتاج Parcel الاسم والتغطية والسلسلة والصلاحية والبروتوكول لا مجرد عملية أو .crt. لا يثبت رد موقع متاح أن العميل وثق الطرف الذي قصده، لذلك يجب أن تذكر الملاحظة إن كان التحقق كاملاً أو تجاوزه العميل، وألا تخلط ذلك بنجاح محتوى HTTP الذي جاء بعده.
يعتمد التشفير على البناء الفعلي
تعتمد ssl على مكتبتها ونسختها، وتؤثر الحزمة والوحدة والصيغة والمفتاح والمضيف. لا تنسخ قائمة خوارزميات تاريخية لكل بيئة دون الرسمي واحتياجات العميل. لا تقدم الدورة سياسة تشغيل أو تولد أو تقرأ مفتاحاً أو شهادة أو تشغّل أداة أو مصافحة. يجب أن يعرف المراجع الدعم الموجود فعلاً، لأن خياراً صالحاً في مرجع حديث قد لا يعمل بمكتبة أقدم أو قد يحمل أثراً مختلفاً على مجموعة العملاء التي لا تزال المؤسسة تحتاجها.
اقرأ مراجع شهادة توضيحية
يسمي المقطع مضيفاً ومسارات غير موجودة ويحذف الاستماع والوحدات والسياسة والسلسلة والوصول والمحتوى، فلا يصلح نشراً كاملاً. مسار المفتاح اسم فقط بلا بايتات. يراجع المالك حمايته وتجديده وتعافيه مستقلة عن التحليل. لا يثبت النص وجود المواد أو مطابقة بعضها لبعض، ولا يدعي أن أي ملف خاص جُمع أو فُحص. الهدف أن يحدد القارئ موضع كل متطلب، ثم يميز بين نجاح قراءة الإعداد والتحقق من هوية خدمة فعلية بمسار مصرح منفصل.
<VirtualHost *:8443>
ServerName parcel.example.invalid
SSLEngine on
SSLCertificateFile "/lab/certs/parcel.crt"
SSLCertificateKeyFile "/lab/private/parcel.key"
</VirtualHost>
لا ينشئ أو يفحص مستمعاً أو شهادة أو مفتاحاً أو إذناً أو سياسة أو خادماً. يحتاج دعماً فعلياً ببيئة منفصلة مصرح بها.
يغير إنهاء TLS عقد القفزة التالية
إذا أنهى وسيط TLS وأرسل HTTP فحدد المخطط والاسم الموثوقين. قد تزور ترويسات العميل الهوية أو تصنع حلقة. وHTTPS الخلفي علاقة أخرى تحتاج تحققها. لا يثبت الأمامي الخلفي. افصل التشفير وهوية الطرف ومصادقة العميل وتفويض التطبيق. لا ينبغي أن يمنح نجاح المرور عبر وسيط معروف ثقة لكل ترويسة يرسلها أي عميل مباشرة، كما يجب أن تعرف الخلفية هل ستثق بالقفزة المتصلة فقط أو بسلسلة وسطاء محددة وفق تصميمها الفعلي.
افحص شرط اسم دقيق معلن فقط
يسأل البرنامج الكامل عن عضوية اسم بمجموعة، ولا يحلل X.509 أو wildcard أو IDNA أو السلسلة أو النهاية أو الإبطال أو SNI. يوضح أهمية الاسم دون وجود ملف. يحتاج الفعلي الثقة والبروتوكول بتحقق مصرح مع حفظ السرية. لا تعني true أن شهادة آمنة أو اتصالاً مشفراً حدث، لأن المجموعة لم تستخرج من مادة تشفيرية؛ هي بيانات تعليمية تعزل سؤال تغطية الاسم عن الأسئلة الأخرى التي يجب ألا يسقطها صاحب قرار TLS.
covered_names = {"parcel.example.invalid", "docs.example.invalid"}
for requested in ["parcel.example.invalid", "other.example.invalid"]:
print(requested, requested in covered_names)
parcel.example.invalid True
other.example.invalid False
المجموعة معلنة لا مستخرجة من شهادة. لا ملف أو DNS أو مكتبة TLS أو اتصال أو اعتماد.
الأخطاء الشائعة وإصلاحها
يُتوقع إصلاح الشهادة بتغيير Host.
- لماذا يحدث؟
- اختلطت المصافحة بتوجيه لاحق.
- كيف تصلحه؟
- راجع SNI والمضيف والشهادة مستقلة.
- كيف تتجنب تكراره؟
- احفظ المخطط والاسم لكل حد.
يُعد نجاح الأمام تحققاً لخلفية TLS.
- لماذا يحدث؟
- دُمجت علاقتا ثقة.
- كيف تصلحه؟
- راجع هوية الخلفية وتحققها المدعوم.
- كيف تتجنب تكراره؟
- وثق القفزات ومصدر البيانات الموثوق.
تنسخ قائمة قديمة كسياسة عامة.
- لماذا يحدث؟
- أُهملت النسخة والمكتبة والعميل والإرشاد.
- كيف تصلحه؟
- اختر سياسة مراجعَة للبيئة الفعلية.
- كيف تتجنب تكراره؟
- سجل الافتراض وراجع الدورة.
اختبر فهمك
1. يوجد ملف لا يغطي الاسم. هل يكفي وجوده؟
اعرض الحل المشروح
لا. لا يثبت الهوية والسلسلة والصلاحية والبروتوكول. يعزل النموذج اسماً فقط ولا يفحص شهادة. تحقق وفق عقد العميل الفعلي بمسار مصرح.
2. لماذا قد تتكرر تحويلات HTTPS خلف المنهي؟
اعرض الحل المشروح
قد يظن الخلف أن الأصل HTTP بسبب غياب المخطط الموثوق أو تفسيره خطأ. راجع القفزة والبيانات ولا تعطل التحقق أو تثق بأي ترويسة عميل.
أهم ما تعلمته
- افصل TLS والتوجيه والتفويض.
- لكل قفزة عقد ثقة وتحقق صريح.