ضبط بروتوكول أمان طبقة النقل (TLS) من Edge إلى الخلفية (Cloud وPrivate Cloud)

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

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

‫TargetEndpoint هو المكافئ الصادر لـ ProxyEndpoint. تعمل TargetEndpoint كعميل HTTP من Edge إلى خدمة خلفية. عند إنشاء خادم وكيل لواجهة برمجة التطبيقات، يمكنك ضبطه لاستخدام صفر أو أكثر من TargetEndpoints.

مزيد من المعلومات:

إعداد TargetEndpoint أو TargetServer

لضبط TargetEndpoint، عدِّل كائن XML الذي يحدّد TargetEndpoint. يمكنك تعديل TargetEndpoint من خلال تعديل ملف XML الذي يحدّد TargetEndpoint في خادم وكيل واجهة برمجة التطبيقات، أو تعديله في واجهة مستخدم إدارة Edge.

لاستخدام واجهة مستخدم "إدارة Edge" لتعديل TargetEndpoint، اتّبِع الخطوات التالية:

  1. سجِّل الدخول إلى واجهة مستخدم إدارة Edge على https://enterprise.apigee.com.
  2. اختَر اسم خادم وكيل واجهة برمجة التطبيقات المطلوب تعديله.
  3. انقر على علامة التبويب تطوير.
  4. ضِمن نقاط النهاية المستهدَفة، اختَر الإعدادات التلقائية.
  5. في مساحة الرمز، يظهر تعريف TargetEndpoint، على النحو التالي:
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. اضبط truststore كما هو موضّح أدناه في لمحة عن إعداد بروتوكول أمان طبقة النقل (TLS) مع الخلفية.
  7. أجرِ أي تغييرات واحفظ الخادم الوكيل. إذا تم نشر خادم وكيل لواجهة برمجة التطبيقات، سيؤدي حفظه إلى إعادة نشره باستخدام الإعداد الجديد.

لاحظ أنّ تعريف TargetEndpoint يحتوي على السمة name. يمكنك استخدام قيمة السمة name لضبط تعريف ProxyEndpoint لخادم وكيل لواجهة برمجة التطبيقات من أجل استخدام TargetEndpoint. يمكنك الاطّلاع على مرجع إعداد خادم وكيل لواجهة برمجة التطبيقات لمزيد من المعلومات.

يمكن ضبط TargetEndpoints للإشارة إلى TargetServer، بدلاً من عنوان URL المقصود الصريح. يفصل إعداد TargetServer عناوين URL المحدّدة لنقاط النهاية عن إعدادات TargetEndpoint. يتم استخدام TargetServers لدعم موازنة الحمل والتجاوز عند التعطُّل على مستوى مثيلات خادم الخلفية المتعددة.

في ما يلي مثال على تعريف TargetServer:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

يتم الرجوع إلى TargetServer بالاسم في العنصر <HTTPTargetConnection> في تعريف TargetEndpoint. يمكنك ضبط خادم مستهدف واحد أو أكثر باسم، كما هو موضّح أدناه.

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

لمزيد من المعلومات، يُرجى الاطّلاع على موازنة التحميل على مستوى خوادم الخلفية.

لمحة عن إعدادات بروتوكول أمان طبقة النقل (TLS) مع الواجهة الخلفية

قبل ضبط إذن الوصول إلى الخلفية باستخدام بروتوكول أمان طبقة النقل (TLS)، عليك فهم نقطتَين مهمتَين:

  1. لا يتحقّق Edge تلقائيًا من شهادة الخلفية. يجب إنشاء مستودع شهادات موثوقة لتتمكّن من ضبط Edge من أجل التحقّق من صحة الشهادة.
  2. استخدِم مرجعًا لتحديد ملف تخزين المفاتيح أو ملف تخزين الشهادات الموثوقة الذي يستخدمه Edge.

نوضّح أدناه كلا الاعتبارَين.

تحديد truststore لتفعيل التحقّق من الشهادات

عند إرسال طلب TLS من خلال TargetEndpoint أو TargetServer، لا يتحقّق Edge تلقائيًا من شهادة TLS التي يتلقّاها من خادم الخلفية. وهذا يعني أنّ Edge لا يتحقّق مما يلي:

  • تم توقيع الشهادة من قِبل مرجع تصديق موثوق به.
  • لم تنتهِ صلاحية الشهادة.
  • تقدّم الشهادة اسمًا شائعًا. في حال توفّر اسم شائع، لا يتحقّق Edge من تطابق الاسم الشائع مع اسم المضيف المحدّد في عنوان URL.

لضبط Edge من أجل التحقّق من صحة شهادة الخلفية، عليك تنفيذ ما يلي:

  1. أنشِئ ملف truststore على Edge.
  2. حمِّل شهادة الخادم أو سلسلة الشهادات إلى مستودع الثقة. إذا كانت شهادة الخادم موقَّعة من جهة خارجية، عليك تحميل سلسلة الشهادات الكاملة، بما في ذلك شهادة مرجع التصديق الجذر، إلى truststore. ما مِن هيئات إصدار شهادات موثوق بها ضمنيًا.
  3. أضِف ملف truststore إلى تعريف TargetEndpoint أو TargetServer.

يمكنك الاطّلاع على ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوقة للحصول على مزيد من المعلومات.

على سبيل المثال:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

استخدام مرجع إلى ملف تخزين مفاتيح أو ملف تخزين شهادات موثوقة

يوضّح المثال أدناه كيفية ضبط TargetEndpoint أو TargetServer لدعم بروتوكول أمان طبقة النقل (TLS). كجزء من عملية ضبط طبقة النقل الآمنة، عليك تحديد ملف truststore وملف keystore كجزء من تعريف TargetEndpoint أو TargetServer.

تنصح Apigee بشدة باستخدام مرجع إلى ملف تخزين المفاتيح وملف تخزين الشهادات الموثوقة في تعريفات TargetEndpoints أو TargetServer. تتمثّل ميزة استخدام مرجع في أنّه عليك تعديل المرجع فقط للإشارة إلى ملف تخزين مفاتيح أو ملف تخزين موثوق به مختلف من أجل تعديل شهادة TLS.

تعمل الإشارات إلى ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوقة في تعريفات TargetEndpoints أو TargetServer بالطريقة نفسها التي تعمل بها مع المضيفات الافتراضية.

تحويل TargetEndpoint أو TargetServer لاستخدام مرجع

قد تكون لديك تعريفات TargetEndpoint أو TargetServer حالية تستخدم الاسم الحرفي لمخزن المفاتيح ومخزن الشهادات الموثوقة. لتحويل تعريف TargetEndpoint أو TargetServer لاستخدام المراجع، اتّبِع الخطوات التالية:

  1. عدِّل تعريف TargetEndpoint أو TargetServer لاستخدام مرجع.
  2. أعِد تشغيل "معالجات الرسائل على الأجهزة الطرفية":
    • بالنسبة إلى عملاء السحابة الإلكترونية العامة، يُرجى التواصل مع فريق دعم Apigee Edge لإعادة تشغيل "معالجات الرسائل".
    • بالنسبة إلى عملاء Private Cloud، أعِد تشغيل &quot;معالجات رسائل Edge&quot; واحدة تلو الأخرى.
  3. تأكَّد من أنّ TargetEndpoint أو TargetServer يعملان بشكلٍ سليم.

ضبط بروتوكول أمان طبقة النقل (TLS) أحادي الاتجاه لخادم الخلفية

عند استخدام تعريف TargetEndpoint، لا يتطلّب ضبط الوصول إلى بروتوكول أمان طبقة النقل (TLS) أحادي الاتجاه من Edge (عميل بروتوكول أمان طبقة النقل) إلى خادم الخلفية (خادم بروتوكول أمان طبقة النقل) أي إعدادات إضافية على Edge. ويقع على عاتق خادم الخلفية ضبط بروتوكول أمان طبقة النقل بشكل صحيح.

عليك فقط التأكّد من أنّ العنصر <URL> في تعريف TargetEndpoint يشير إلى خدمة الخلفية باستخدام بروتوكول HTTPS وأنّك فعّلت بروتوكول أمان طبقة النقل (TLS):

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

إذا كنت تستخدم TargetServer لتحديد خدمة الخلفية، فعليك تفعيل بروتوكول أمان طبقة النقل (TLS) في تعريف TargetServer:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

ومع ذلك، إذا أردت أن يتحقّق Edge من صحة شهادة الخلفية، عليك إنشاء ملف truststore يحتوي على شهادة الخلفية أو سلسلة الشهادات. بعد ذلك، حدِّد truststore في تعريف TargetEndpoint:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

أو في تعريف TargetServer:

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

لضبط بروتوكول أمان طبقة النقل (TLS) أحادي الاتجاه، اتّبِع الخطوات التالية:

  1. إذا أردت التحقّق من صحة شهادة الخلفية، أنشئ ملف truststore على Edge، وحمِّل شهادة الخلفية أو سلسلة مرجع التصديق، كما هو موضّح في ملفات تخزين المفاتيح وملفات truststore. في هذا المثال، إذا كان عليك إنشاء ملف truststore، سمِّه myTrustStore.
  2. إذا أنشأت ملف truststore، استخدِم طلب بيانات من واجهة برمجة التطبيقات POST التالي لإنشاء المرجع المسمّى myTrustStoreRef إلى ملف truststore الذي أنشأته أعلاه:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. استخدِم واجهة مستخدم إدارة Edge لتعديل تعريف TargetEndpoint لخادم وكيل واجهة برمجة التطبيقات (أو، إذا كنت تحدّد خادم وكيل واجهة برمجة التطبيقات في XML، عدِّل ملفات XML الخاصة بالخادم الوكيل):
    1. سجِّل الدخول إلى واجهة مستخدم إدارة Edge على https://enterprise.apigee.com.
    2. في قائمة واجهة مستخدم إدارة Edge، اختَر واجهات برمجة التطبيقات.
    3. اختَر اسم خادم وكيل واجهة برمجة التطبيقات المطلوب تعديله.
    4. انقر على علامة التبويب التطوير.
    5. ضِمن نقاط النهاية المستهدَفة، اختَر الإعدادات التلقائية.
    6. في مساحة الرمز، عدِّل العنصر <HTTPTargetConnection> لإضافة العنصر <SSLInfo>. احرص على تحديد مرجع truststore الصحيح وضبط <Enabled> على "صحيح":
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. احفظ وكيل واجهة برمجة التطبيقات. إذا تم نشر خادم وكيل لواجهة برمجة التطبيقات، سيؤدي حفظه إلى إعادة نشره باستخدام الإعداد الجديد.

ضبط بروتوكول أمان طبقة النقل (TLS) ثنائي الاتجاه لخادم الخلفية

إذا كنت تريد إتاحة بروتوكول أمان طبقة النقل (TLS) ثنائي الاتجاه بين Edge (عميل بروتوكول أمان طبقة النقل) وخادم الخلفية (خادم بروتوكول أمان طبقة النقل):

  • أنشئ ملف تخزين مفاتيح على Edge وحمِّل شهادة Edge والمفتاح الخاص.
  • إذا أردت التحقّق من صحة شهادة الخلفية، أنشئ ملف truststore على Edge يحتوي على الشهادة وسلسلة مرجع التصديق التي تلقّيتها من خادم الخلفية.
  • عدِّل TargetEndpoint لأي خوادم وكيلة لواجهة برمجة التطبيقات تشير إلى خادم الخلفية لضبط إذن الوصول إلى بروتوكول أمان طبقة النقل (TLS).

استخدام الاسم المستعار للمفتاح لتحديد شهادة ملف تخزين المفاتيح

يمكنك تحديد شهادات متعددة، لكل منها اسم مستعار خاص بها، في مخزن المفاتيح نفسه. يستخدم Edge تلقائيًا الشهادة الأولى المحدّدة في مخزن المفاتيح.

يمكنك اختياريًا ضبط Edge لاستخدام الشهادة المحدّدة من خلال السمة <KeyAlias>. يتيح لك ذلك تحديد ملف تخزين مفاتيح واحد لشهادات متعددة، ثم اختيار الشهادة التي تريد استخدامها في تعريف TargetServer. إذا لم يتمكّن Edge من العثور على شهادة ذات اسم مستعار يطابق <KeyAlias>، سيتم استخدام الإجراء التلقائي المتمثل في اختيار الشهادة الأولى في مخزن المفاتيح.

على مستخدمي Edge for Public Cloud التواصل مع فريق دعم Apigee Edge لتفعيل هذه الميزة.

إعداد بروتوكول أمان طبقة النقل (TLS) ثنائي الاتجاه

لضبط بروتوكول أمان طبقة النقل (TLS) الثنائي الاتجاه، اتّبِع الخطوات التالية:

  1. أنشئ ملف تخزين المفاتيح على Edge، وحمِّل الشهادة والمفتاح الخاص باتّباع الإجراء الموضّح هنا: ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوقة. في هذا المثال، أنشئ ملف تخزين مفاتيح باسم myTestKeystore يستخدم اسمًا مستعارًا هو myKey للشهادة والمفتاح الخاص.
  2. استخدِم طلب بيانات من واجهة برمجة التطبيقات POST التالي لإنشاء المرجع المسمّى myKeyStoreRef إلى ملف تخزين المفاتيح الذي أنشأته أعلاه:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    يحدّد المرجع اسم ملف تخزين المفاتيح ونوع المرجع على النحو التالي: KeyStore.

    استخدِم طلب بيانات من واجهة برمجة التطبيقات GET التالي لعرض المرجع:

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. إذا أردت التحقّق من صحة شهادة الخلفية، أنشئ truststore على Edge، وحمِّل الشهادة وسلسلة CA، كما هو موضّح هنا: Keystores وTruststores. في هذا المثال، إذا كان عليك إنشاء ملف truststore، سمِّه myTrustStore.
  4. إذا أنشأت ملف truststore، استخدِم طلب بيانات من واجهة برمجة التطبيقات POST التالي لإنشاء المرجع المسمّى myTrustStoreRef إلى ملف truststore الذي أنشأته أعلاه:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. استخدِم واجهة مستخدم إدارة Edge لتعديل تعريف TargetEndpoint لخادم وكيل واجهة برمجة التطبيقات (أو، إذا كنت تحدّد خادم وكيل واجهة برمجة التطبيقات في XML، عدِّل ملفات XML الخاصة بالخادم الوكيل):
    1. سجِّل الدخول إلى واجهة مستخدم إدارة Edge على https://enterprise.apigee.com.
    2. في قائمة واجهة مستخدم إدارة Edge، اختَر واجهات برمجة التطبيقات.
    3. اختَر اسم خادم وكيل واجهة برمجة التطبيقات المطلوب تعديله.
    4. انقر على علامة التبويب التطوير.
    5. ضِمن نقاط النهاية المستهدَفة، اختَر الإعدادات التلقائية.
    6. في مساحة الرمز، عدِّل العنصر <HTTPTargetConnection> لإضافة العنصر <SSLInfo>. احرص على تحديد ملف تخزين المفاتيح واسم المفتاح الصحيحَين، واضبط قيمة العنصرَين <Enabled> و<ClientAuthEnabled> على "صحيح":
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
    7. احفظ وكيل واجهة برمجة التطبيقات. إذا تم نشر خادم وكيل لواجهة برمجة التطبيقات، سيؤدي حفظه إلى إعادة نشره باستخدام الإعداد الجديد.

لمزيد من المعلومات حول الخيارات المتاحة في <TargetEndpoint>، بما في ذلك استخدام المتغيرات لتوفير قيم <SSLInfo> في TargetEndpoint، راجِع مرجع إعداد خادم وكيل API.

تفعيل SNI

يتيح Edge استخدام &quot;الإشارة إلى اسم الخادم&quot; (SNI) من &quot;معالجات الرسائل&quot; لاستهداف نقاط النهاية في Apigee Edge for Cloud وPrivate Cloud.

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