استخدام إشارة اسم الخادم (SNI) مع Edge

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

تسمح إشارة اسم الخادم (SNI) بعرض استهدافات HTTPS متعددة من عنوان IP والمنفذ نفسهما بدون اشتراط أن تستخدم هذه الاستهدافات شهادة بروتوكول أمان طبقة النقل (TLS) نفسها. عند تفعيل SNI على أحد العملاء، يُرسِل العميل اسم المضيف لنقطة النهاية المستهدَفة كجزء من عملية تبادل الإشارات الأولية لبروتوكول TLS. ويسمح ذلك لخادم TLS بتحديد شهادة TLS التي يجب استخدامها للتحقّق من صحة الطلب.

على سبيل المثال، إذا كان هدف الطلب هو https://example.com/request/path، يضيف برنامج TLS العميل الإضافة server_name إلى طلب بدء جلسة TLS ، كما هو موضّح أدناه:

يتوافق Edge مع SNI لما يلي:

  • الطلبات الواردة من تطبيق عميل إلى خادم وكيل لواجهة برمجة التطبيقات في هذا السيناريو، يعمل Edge بمثابة خادم بروتوكول أمان طبقة النقل (TLS).
  • الطلبات الواردة من Edge إلى الخلفية في هذا السيناريو، يعمل Edge بصفته عميل بروتوكول أمان طبقة النقل (TLS).

للحصول على معلومات إضافية عن SNI، يُرجى الاطّلاع على:

إتاحة بروتوكول SNI لطلب خادم وكيل لواجهة برمجة التطبيقات على Edge

يتم التحكّم في توافق SNI مع طلبات الخوادم الوكيلة لواجهات برمجة التطبيقات من خلال الأسماء البديلة للمضيفين والمضيفين الافتراصيل.

لمحة عن الأجهزة المضيفة الافتراضية والأسماء البديلة للمضيف

في Edge، يحدِّد المضيف الافتراضي عنوان IP والمنفذ أو اسم نظام أسماء النطاقات والمنفذ على يتم عرض خادم وكيل لواجهة برمجة التطبيقات، وبالتالي عنوان URL الذي تستخدمه التطبيقات للوصول إلى خادم وكيل لواجهة برمجة التطبيقات. يتوافق عنوان IP أو اسم نظام أسماء النطاقات مع جهاز توجيه Edge Router، ورقم المنفذ هو منفذ مفتوح على جهاز التوجيه.

عند إنشاء المضيف الظاهري، يمكنك أيضًا تحديد الاسم المعرِّف للمضيف الظاهري. وعادةً ما يكون هذا هو اسم نظام أسماء النطاقات للمضيف الافتراضي. كجزء من تحديد وكيل واجهة برمجة التطبيقات الذي يعالج الطلب، يقارن "الموجّه" رأس Host للطلب الوافد بجدول الأسماء البديلة للمضيفين المتاحة التي حدّدتها جميع المضيفين الظاهريين.

يجب أن يكون الجمع بين الاسم المعرِّف للمضيف ورقم المنفذ للمضيف الظاهري فريدًا لكل المضيفين الظاهريين في عملية تثبيت Edge. وهذا يعني أنّ يمكن لعدة مضيفين افتراضيين استخدام رقم المنفذ نفسه إذا كانت لديهم أسماء مضيفين بديلة مختلفة.

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

للحصول على معلومات إضافية عن المضيفين الظاهريين، يُرجى الاطّلاع على:

آلية عمل بروتوكول SNI مع الأسماء البديلة للمضيف

تسمح لك تقنية SNI بتحديد مضيفين افتراضيين متعدّدين على المنفذ نفسه، ولكلّ مضيف مفاتيح وشهادات بروتوكول النقل الآمن (TLS) مختلفة. بعد ذلك، يحدِّد Edge المضيف الافتراضي وزوج الشهادة/المفتاح المستخدَمَين في بروتوكول أمان طبقة النقل (TLS)، استنادًا إلى إضافة server_name في طلب تأكيد الاتصال من خلال بروتوكول أمان طبقة النقل (TLS).

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

بدلاً من تعذُّر إجراء مصافحة TLS، يمكنك تحديد مفتاح/شهادة افتراضيَين، كما هو موضّح في الأقسام التالية.

تحديد مفتاح تشفير/شهادة اعتماد تلقائية في Edge for the Cloud

توفّر Apigee شهادة بروتوكول أمان طبقة النقل (TLS) ومفتاحًا خاصًا لدعم بروتوكول HTTPS. على الرغم من أنّ العديد من العملاء يفضّلون استخدام شهادتهم ومفتاحهم الخاصَين في وقت النشر، يمكنك نشر واجهات برمجة التطبيقات باستخدام شهادة Apigee ومفتاحها.

في Edge for the Cloud، إذا تعذّر على جهاز التوجيه مطابقة عنوان SNI مع الاسم المعرِّف للمضيف أو إذا كان العميل لا يتوافق مع إشارة SNI، سيستخدم جهاز التوجيه الشهادة التلقائية المقدَّمة من Apigee، وهي *.apigee.net.

تحديد زوج مفتاح/شهادة تلقائي في Edge for Private Cloud

في Edge for the Private Cloud، إذا لم يتم العثور على مطابقة بين إضافة server_name وأسماء المضيفين البديلة من جميع المضيفين الظاهريين، أو إذا كان العميل المُرسِل للطلب لا يتيح بروتوكول SNI، يمكنك ضبط جهاز التوجيه لاستخدام شهادة التشفير/المفتاح من مضيف افتراضي تلقائي على المنفذ. يتم تحديد المضيف الافتراضي من خلال مجموعة من اسم المؤسسة واسم البيئة واسم المضيف الافتراضي، في الشكل التالي:

orgName_envName_vhName

يستخدم جهاز التوجيه شهادة/مفتاح من مجموعة orgName_envName_vhName التي تأتي أولاً بترتيب أبجدي. على سبيل المثال، يصل الطلب عبر المنفذ 443، وهناك مضيفان افتراضيان محدّدان للمؤسسة example في البيئة prod:

  • اسم المضيف الافتراضي = default
  • اسم المضيف الافتراضي = test

في هذا المثال، يستخدم جهاز التوجيه شهادة/مفتاح التشفير من المضيف الافتراضي المُسمى default لأنّ example_prod_default يأتي قبل example_prod_test أبجديًا.

لتفعيل المضيف الافتراضي:

  1. في عقدة "الموجّه" الأولى، عدِّل /opt/apigee/customer/application/router.properties. إذا لم يكن هذا الملف متوفّرًا، أنشِئه.
  2. أضِف السمة التالية إلى الملف لتتمكّن من تحديد مضيف افتراضي تلقائي:
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  3. إعادة تشغيل جهاز التوجيه:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. كرِّر هذه الخطوات على جميع أجهزة التوجيه المتبقية.

بدلاً من استخدام شهادة التشفير/مفتاح التشفير من المضيف الافتراضي، يمكنك تحديد شهادة التشفير/مفتاح التشفير التلقائيَين على جهاز التوجيه بشكل صريح. استخدِم الإجراء التالي لتحديد زوج مفتاح/شهادة افتراضيين واضحَين:

  1. في عقدة التوجيه الأولى، انسخ شهادة التشفير والمفتاح الخاص إلى موقع على عقدة التوجيه يمكن لمستخدم apigee الوصول إليه. مثلاً: /opt/apigee/customer/application
  2. تغيير ملكية الملفات إلى مستخدم apigee.:
    chown apigee:apigee /opt/apigee/customer/application/myCert.pem
    chown apigee:apigee /opt/apigee/customer/application/myKey.pem
  3. تعديل /opt/apigee/customer/application/router.properties إذا لم يكن هذا الملف متوفّرًا، أنشِئه.
  4. أضِف السمات التالية إلى الملف لتتمكّن من تحديد شهادة التشفير أو المفتاح التلقائيَين:
    conf_load_balancing_load.balancing.driver.nginx.fallback.server.default.ssl.template.enabled=true
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  5. اضبط السمات التالية في router.properties لتحديد مكان الشهادة والمفتاح:
    conf_load_balancing_load.balancing.driver.nginx.ssl.cert=/opt/apigee/customer/application/myCert.pem
    conf_load_balancing_load.balancing.driver.nginx.ssl.key=/opt/apigee/customer/application/myKey.pem
  6. إعادة تشغيل جهاز التوجيه:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. كرِّر هذه الخطوات على جميع أجهزة التوجيه المتبقية.

إتاحة بروتوكول SNI للطلبات الواردة من Edge إلى الخلفية

تتيح Edge استخدام بروتوكول SNI من معالجات الرسائل لاستهداف نقاط النهاية في عمليات نشر Apigee Edge لخدمات السحابة الإلكترونية والسحابة الإلكترونية الخاصة. يتم تفعيل بروتوكول SNI تلقائيًا على معالجات الرسائل في الحواف للسحابة الإلكترونية ويتم إيقافه في "السحابة الإلكترونية الخاصة".

استخدام SNI في الخلفية في Edge لـ Private Cloud

بالنسبة إلى Edge for the Private Cloud، لكي يكون متوافقًا مع الإصدارات القديمة من الخلفيات المستهدَفة الحالية، أوقفت Apigee بروتوكول SNI تلقائيًا. إذا تم ضبط الخلفية المستهدَفة لتتوافق مع إشارة اسم الخادم (SNI)، يمكنك تفعيل هذه الميزة كما هو موضّح أدناه لإصدار Edge.

ولا يلزم إجراء أيّ إعدادات أخرى خاصة بتطبيق Edge. إذا تم ضبط بيئتك المستهدَفة على SNI، يتيح Edge ذلك. يستخرج Edge تلقائيًا اسم المضيف من عنوان URL للطلب ويضيفه إلى طلب تأكيد الاتصال عبر بروتوكول أمان طبقة النقل (TLS).

تفعيل SNI بين Edge والخلفية لإصدار Edge 4.15.07.0x

اتّبِع الإجراء التالي لتفعيل بروتوكول SNI:

  1. في عقدة Message Processor (معالج الرسائل) الأولى، افتح الملف /opt/apigee4/conf/apigee/message-processor/system.properties في محرِّر.
  2. اضبط السمة التالية على "صحيح" في system.properties:
    jsse.enableSNIExtension=true
  3. إعادة تشغيل معالجات الرسائل:
    /opt/apigee4/bin/apigee-service message-processor restart
  4. كرِّر هذه الخطوات على جميع معالجات الرسائل المتبقية.

تفعيل SNI بين Edge والخلفية للإصدار 4.16.01 من Edge والإصدارات الأحدث

اتّبِع الإجراء التالي لتفعيل بروتوكول SNI:

  1. في عقدة "معالج الرسائل" الأولى، عدِّل /opt/apigee/customer/application/message-processor.properties. إذا لم يكن هذا الملف متوفّرًا، أنشِئه.
  2. أضِف السمة التالية إلى الملف:
    conf_system_jsse.enableSNIExtension=true
  3. إعادة تشغيل "معالج الرسائل":
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. كرِّر هذه الخطوات على جميع معالجات الرسائل المتبقية.