ضبط إشارة SNI بين معالج رسائل Edge وخادم الخلفية

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

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

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

يوضّح هذا المستند كيفية تنفيذ ما يلي:

قبل البدء

تحديد الخادم المفعَّل عليه SNI

يوضّح هذا القسم كيفية تحديد ما إذا كان خادم الخلفية مفعَّلاً لبروتوكول SNI أم لا.

  1. نفِّذ الأمر openssl وحاوِل الاتصال باسم مضيف الخادم ذي الصلة بدون إدخال اسم الخادم، كما هو موضّح أدناه:
    openssl s_client -connect hostname:port
  2. قد تحصل على الشهادات، وقد تلاحظ أحيانًا تعذُّر المصافحة في الأمر openssl، كما هو موضّح أدناه:
    CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
  3. نفِّذ الأمر openssl وحاوِل الاتصال باسم مضيف الخادم ذي الصلة (جهاز توجيه Edge أو خادم الخلفية) من خلال تمرير اسم الخادم كما هو موضّح أدناه:
    openssl s_client -connect hostname:port -servername hostname
  4. إذا حدث خطأ في المصافحة في الخطوة 1 أو تلقّيت شهادات مختلفة في الخطوتين 1 و2، يعني ذلك أنّ الخادم المحدّد مفعّل فيه SNI.
  5. إذا أردت إثبات ملكية أكثر من خادم خلفي واحد، عليك تكرار الخطوات أعلاه لكل خادم خلفي.

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

تفعيل SNI بين Edge Message Processors وخادم الخلفية

يوضّح هذا القسم كيفية تفعيل SNI بين "معالج رسائل Edge" وخادم الخلفية. يمكن تفعيل SNI من خلال السمة jsse.enableSNIExtension في مكوّن "معالجة الرسائل". لضبط أي سمة في "معالج الرسائل"، استخدِم الرمز المميّز وفقًا للصيغة الموضّحة في كيفية ضبط Edge.

لتفعيل SNI على "معالجات الرسائل"، اتّبِع الخطوات التالية:

  1. تحديد موقع الرمز المميّز للسمة jsse.enableSNIExtension
  2. تفعيل SNI على "معالج الرسائل"

تحديد موقع الرمز المميّز لموقع jsse.enableSNIExtension

توضّح الخطوات التالية كيفية العثور على الرمز المميّز الخاص بالموقع jsse.enableSNIExtension:

  1. ابحث عن السمة jsse.enableSNIExtension في دليل مصدر Message Processor /opt/apigee/edge-message-processor/source باستخدام الأمر التالي:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. تعرض نتيجة هذا الأمر الرمز المميّز لسمة "معالج الرسائل" jsse.enableSNIExtension على النحو التالي:
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}

    حيث تكون السلسلة بين علامتَي {T}{/T} هي اسم الرمز المميّز الذي يمكنك ضبطه في ملف .properties الخاص بـ "معالج الرسائل".

    وبالتالي، يكون الرمز المميّز للسمة jsse.enableSNIExtension على النحو التالي:

    conf_system_jsse.enableSNIExtension

تفعيل SNI على "معالج الرسائل"

توضِّح الخطوات التالية كيفية تفعيل SNI على مكوّن "معالج الرسائل" في Apigee.

  1. على جهاز "معالجة الرسائل"، افتح الملف التالي في محرِّر. إذا لم يكن متوفّرًا، أنشئه.
    /opt/apigee/customer/application/message-processor.properties

    على سبيل المثال، لفتح الملف باستخدام vi، أدخِل الأمر التالي:

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

إيقاف SNI بين "معالجات رسائل Edge" وخادم الخلفية

بشكل عام، من المفترض ألا تواجه أي مشاكل بعد تفعيل SNI. ومع ذلك، إذا لاحظت أي مشاكل في الاتصال بين Edge Message Processor وخادم الخلفية بعد تفعيل SNI، يمكنك في أي وقت إيقاف SNI باتّباع الخطوات التالية.

يمكن إيقاف SNI من خلال إعادة ضبط الخاصية jsse.enableSNIExtension على false في مكوّن "معالج الرسائل".

إيقاف SNI على "معالجات الرسائل"

توضّح الخطوات التالية كيفية إيقاف SNI على "معالجات الرسائل" في Apigee.

  1. على جهاز "معالج الرسائل"، افتح الملف التالي في محرّر. إذا لم يكن متوفّرًا، أنشئه.
    /opt/apigee/customer/application/message-processor.properties

    على سبيل المثال، لفتح الملف باستخدام vi، أدخِل الأمر التالي:

    vi /opt/apigee/customer/application/message-processor.properties
  2. إذا كان السطر conf_system_jsse.enableSNIExtension=true متوفّرًا في /opt/apigee/customer/application/message-processor.properties، عدِّله على النحو التالي:
    conf_system_jsse.enableSNIExtension=false
  3. احفظ التغييرات.
  4. تأكَّد من أنّ ملف السمات هذا يملكه المستخدم apigee كما هو موضّح أدناه:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. أعِد تشغيل "معالج الرسائل" كما هو موضّح أدناه:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. تأكَّد من تعديل إعدادات SNI على "معالج الرسائل".
  7. إذا كان لديك أكثر من معالج رسائل واحد، كرِّر الخطوات أعلاه على جميع معالجات الرسائل.

التحقّق من إعداد SNI على معالِجات الرسائل

يوضّح هذا القسم كيفية التأكّد من أنّه تم تعديل إعدادات SNI بنجاح على معالِجات الرسائل.

على الرغم من أنّك تستخدم الرمز المميّز conf_system_jsse.enableSNIExtension لضبط SNI على "معالج الرسائل"، عليك التأكّد من ضبط السمة الفعلية jsse.enableSNIExtension بالقيمة الجديدة.

  1. على جهاز Message Processor، ابحث عن السمة jsse.enableSNIExtension في الدليل /opt/apigee/edge-message-processor/conf وتحقّق مما إذا تم ضبطها بالقيمة الجديدة كما هو موضّح أدناه:
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
  2. إذا تم تعديل إعدادات SNI بنجاح على "معالج الرسائل"، سيعرض الأمر أعلاه القيمة الجديدة في الملف system.properties.

    في ما يلي نموذج للنتيجة من الأمر أعلاه بعد تفعيل SNI على "معالج الرسائل":

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true

    وبالمثل، تكون نتيجة العيّنة من الأمر أعلاه بعد إيقاف إشارة اسم الخادم (SNI) على "معالج الرسائل" كما يلي:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false

    في مثال الناتج أعلاه، لاحظ أنّه تم تعديل السمة jsse.enableSNIExtension إلى القيمة الجديدة true أو false في system.properties. يشير ذلك إلى أنّه تم تفعيل أو إيقاف SNI بنجاح على "معالج الرسائل".

  3. إذا كنت لا تزال ترى القيمة القديمة للسمة jsse.enableSNIExtension، تأكَّد من اتّباع جميع الخطوات الموضّحة في القسم المناسب لتفعيل SNI أو إيقافه بشكل صحيح. إذا فاتتك أي خطوة، كرِّر جميع الخطوات مرة أخرى بشكل صحيح.
  4. إذا استمرّ تعذُّر تفعيل أو إيقاف SNI، يُرجى التواصل مع فريق دعم Apigee Edge.