أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يحدّد المضيف الافتراضي على Edge النطاقات والمنافذ التي يتم عرض خادم وكيل لواجهة برمجة التطبيقات عليها، وبالتالي، عنوان URL الذي تستخدمه التطبيقات للوصول إلى خادم وكيل لواجهة برمجة التطبيقات.
يحدّد المضيف الافتراضي أيضًا ما إذا كان يمكن الوصول إلى خادم API الوكيل باستخدام بروتوكول HTTP أو بروتوكول HTTPS المشفّر الذي يستخدم بروتوكول أمان طبقة النقل (TLS). عند ضبط مضيف افتراضي لاستخدام HTTPS وTLS، عليك إنشاء مضيف افتراضي على Edge وضبط المضيف الافتراضي لاستخدام مخزن مفاتيح ومخزن موثوق به.
مزيد من المعلومات:
- لمحة عن بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL)
- استخدام بروتوكول أمان طبقة النقل (TLS) مع Edge
- لمحة عن المضيفين الافتراضيين
- ضبط المضيفات الافتراضية للسحابة الخاصة
- مرجع سمة المضيف الافتراضي
- ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوقة
متطلبات إنشاء مضيف افتراضي
قبل إنشاء مضيف افتراضي، يجب أن تتوفّر لديك المعلومات التالية:
- اسم النطاق المتاح للجميع للمضيف الافتراضي. على سبيل المثال، يجب أن تعرف ما إذا كان الاسم المعروض للجميع هو
api.myCompany.comأوmyapi.myCompany.comأو غير ذلك، ويتم استخدام هذه المعلومات عند إنشاء المضيف الافتراضي وأيضًا عند إنشاء سجلّ نظام أسماء النطاقات للمضيف الافتراضي. -
بالنسبة إلى بروتوكول أمان طبقة النقل (TLS) أحادي الاتجاه، عليك إنشاء مخزن مفاتيح يحتوي على ما يلي:
- شهادة TLS، إما شهادة موقَّعة من هيئة إصدار شهادات (CA)، أو سلسلة من الشهادات موقَّعة من هيئة إصدار شهادات (CA)
- المفتاح الخاص: يتيح Edge أحجام مفاتيح تصل إلى 2048 بت. عبارة المرور اختيارية.
- بالنسبة إلى بروتوكول أمان طبقة النقل (TLS) الثنائي الاتجاه، تحتاج إلى ملف تخزين مفاتيح وملف تخزين موثوق به لتخزين شهادة العميل وسلسلة هيئة إصدار الشهادات (CA) الخاصة بالشهادة، بشكل اختياري. تحتاج إلى truststore حتى إذا كانت الشهادة موقَّعة من مرجع تصديق.
لمزيد من المعلومات حول إنشاء ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها، يُرجى الاطّلاع على ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها.
إعدادات المضيف الافتراضي لبروتوكول أمان طبقة النقل (TLS)
لإنشاء مضيف افتراضي، أنشئ عنصر XML يحدّد المضيف الافتراضي.
يستخدم عنصر XML التالي العنصر <SSLInfo> لتحديد مضيف افتراضي لإعداد TLS أحادي الاتجاه عبر HTTPS:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>apiTLS.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9006</Port>
<OCSPStapling>off</OCSPStapling>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost>في هذا المثال، تم ضبط العنصر <Enabled> على القيمة "صحيح" لتفعيل بروتوكول أمان طبقة النقل (TLS) أحادي الاتجاه، ويحدّد العنصران <KeyStore> وKeyAlias> مخزن المفاتيح والمفتاح اللذين يستخدمهما اتصال بروتوكول أمان طبقة النقل (TLS).
لتفعيل بروتوكول أمان طبقة النقل (TLS) الثنائي الاتجاه، اضبط العنصر <ClientAuthEnabled> على true، وحدِّد truststore باستخدام العنصر <TrustStore>. يحتوي Truststore على شهادة العميل وسلسلة شهادات هيئة إصدار الشهادات (CA) (اختياري).
تحديد كيفية تحديد اسم ملف تخزين المفاتيح وملف تخزين الشهادات الموثوقة في المضيف الافتراضي
في مثال المضيف الافتراضي أعلاه، حدّدت ملف تخزين المفاتيح باستخدام مرجع. المرجع هو متغيّر يحتوي على اسم ملف تخزين المفاتيح بدلاً من تحديد اسم ملف تخزين المفاتيح مباشرةً.
تتمثّل ميزة استخدام مرجع في أنّه يمكنك تغيير قيمة المرجع لتغيير مخزن المفاتيح المستخدَم من قِبل المضيف الافتراضي، وعادةً ما يكون ذلك بسبب انتهاء صلاحية الشهادة في مخزن المفاتيح الحالي في المستقبل القريب. لا يتطلّب تغيير قيمة المرجع إعادة تشغيل Edge Router.
بدلاً من ذلك، يمكنك استخدام اسم حرفي لمخزن المفاتيح في المضيف الافتراضي. ومع ذلك، إذا عدّلت المضيف الافتراضي لتغيير اسم ملف تخزين المفاتيح، عليك إعادة تشغيل أجهزة توجيه Edge.
القيود المفروضة على استخدام مراجع لمخزن المفاتيح ومخزن الشهادات الموثوقة
يجب مراعاة القيد التالي عند استخدام مراجع إلى ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوقة:
- لا يمكنك استخدام مراجع ملفات keystore وtruststore في المضيفات الافتراضية إلا إذا كنت تتيح SNI وتنهي بروتوكول SSL على أجهزة التوجيه في Apigee.
- إذا كان لديك موازن تحميل أمام أجهزة توجيه Apigee، وكنت توقف بروتوكول أمان طبقة النقل (TLS) على موازن التحميل، لن تتمكّن من استخدام مراجع ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها في المضيفات الافتراضية.
تعديل مضيف افتراضي حالي لاستخدام مراجع إلى ملف تخزين المفاتيح وملف تخزين الشهادات الموثوقة
تنصح Apigee بشدة بأن تستخدم المضيفات الافتراضية مرجعًا إلى ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوقة. تتيح لك المراجع تغيير مخزن المفاتيح ومخزن الشهادات الموثوقة اللذين يستخدمهما المضيف الظاهري بدون الحاجة إلى إعادة تشغيل أجهزة توجيه Edge.
إذا كانت المضيفات الافتراضية مُعدّة حاليًا لاستخدام الاسم الحرفي لمخزن المفاتيح أو مخزن الشهادات الموثوقة، يمكنك تحويلها لاستخدام المراجع. لإجراء ذلك، عدِّل المضيف الافتراضي لاستخدام مراجع، ثم أعِد تشغيل أجهزة توجيه Edge.
ضبط رموز وبروتوكولات TLS لإصدار Edge 4.15.07 والإصدارات الأقدم
إذا كنت تستخدم الإصدار 4.15.07 من Edge أو إصدارًا أقدم، يمكنك ضبط بروتوكول TLS ورموز التشفير التي يستخدمها المضيف الظاهري من خلال استخدام العلامتَين الفرعيتَين <Ciphers> و<Protocols> للعلامة <SSLInfo>. يتم وصف هذه العلامات في الجدول أدناه.
على سبيل المثال:
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>myTestKeystore</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>myTestKeystore</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
<Ciphers>
<Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
<Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
<Protocols>
<Protocol>TLSv1.2</Protocol>
</Protocols>
</SSLInfo>
</SSLInfo>تستخدم العلامة <Cipher> اسم التشفير في Java وJSSE. على سبيل المثال، بالنسبة إلى Java 8، يمكنك الاطّلاع على
http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites.
تحديد رموز وبروتوكولات أمان طبقة النقل (TLS) للإصدارات من 4.16.01 إلى 4.16.09 من Edge
في الإصدارات من 4.16.01 إلى 4.16.09 من Edge، يمكنك ضبط بروتوكولات التشفير وبروتوكولات التشفير التلقائية للمضيفين الظاهريين على مستوى العالم على جهاز التوجيه. بعد ذلك، تنطبق هذه الإعدادات التلقائية على جميع المضيفين الافتراضيين.
استخدِم الرموز المميزة لتحديد البروتوكولات والرموز التلقائية:
- لتحديد البروتوكولات التلقائية، استخدِم الرمز المميّز
conf_load_balancing_load.balancing.driver.server.ssl.protocols - لتحديد الرموز التلقائية لجهاز التوجيه، استخدِم الرمز المميز
conf_load_balancing_load.balancing.driver.server.ssl.ciphers
القيمة التلقائية للرمز المميز conf_load_balancing_load.balancing.driver.server.ssl.protocols هي:
conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
يحدّد هذا الإعداد أنّ جهاز التوجيه يتوافق مع الإصدارات 1.0 و1.1 و1.2 من بروتوكول أمان طبقة النقل (TLS). حدِّد قائمة بالقيم مفصولة بمسافات للرمز المميّز.
القيمة التلقائية للرمز المميز conf_load_balancing_load.balancing.driver.server.ssl.ciphers هي:
conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES
يحدّد هذا الإعداد ما يلي:
- يجب أن يكون طول المفتاح 128 بت أو أكثر (
HIGH). - استبعاد التشفيرات التي لا تتضمّن مصادقة (
!aNULL) - استبعاد مجموعات التشفير التي تستخدم MD5 (
!MD5) - استبعاد مجموعات الرموز التي تستخدم DH (بما في ذلك DH المجهول وDH المؤقت وDH الثابت) و
DES الثلاثي (
!DH+3DES) - استبعاد مجموعات رموز التشفير التي تستخدم تبادل مفاتيح RSA وDES الثلاثي (
!RSA+3DES)
للحصول على معلومات حول البنية والقيم المسموح بها في هذا الرمز المميّز، يُرجى الاطّلاع على تشفير OpenSSL. يُرجى العِلم أنّ هذا الرمز المميز يستخدم أسماء تشفير OpenSSL، مثل AES128-SHA256، وليس أسماء تشفير Java/JSSE، مثل TLS_RSA_WITH_AES_128_CBC_SHA256.
لضبط الرمز المميّز لجهاز التوجيه، اتّبِع الخطوات التالية:
- عدِّل ملف
/opt/apigee/customer/application/router.properties. إذا لم يكن هذا الملف متوفّرًا، أنشئه. - اضبط الرمز المميز
conf_load_balancing_load.balancing.driver.server.ssl.ciphers. على سبيل المثال، لتحديد TLSv1.2 فقط واستبعاد مجموعات رموز خوارزمية الترميز التي تستخدم مفاتيح مشتركة مسبقًا، أضِف!PSK:conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1.2 conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES:!PSK
- تأكَّد من أنّ ملف
router.propertiesمملوك من قِبل apigee:chown apigee:apigee /opt/apigee/customer/application/router.properties
- أعِد تشغيل Edge Router:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- تحقَّق من قيمة الرمز المميّز:
/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
ضبط مَعلمات المضيف الافتراضي لبروتوكول أمان طبقة النقل (TLS) في الإصدار 4.17.01 من Edge والإصدارات الأحدث
إذا كنت تستخدم الإصدار 4.17.01 من Edge والإصدارات الأحدث، يمكنك ضبط بعض خصائص بروتوكول أمان طبقة النقل (TLS) لمضيف افتراضي فردي، مثل بروتوكول أمان طبقة النقل (TLS) وخوارزمية الترميز، وذلك باستخدام العلامة الفرعية <Properties> للعلامة <VirtualHost>. يتم وصف هذه العلامات في مرجع موقع المضيف الافتراضي.
على سبيل المثال:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>apiTLS.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9006</Port>
<OCSPStapling>off</OCSPStapling>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
<Properties>
<Property name="proxy_read_timeout">50</Property>
<Property name="keepalive_timeout">300</Property>
<Property name="proxy_request_buffering">off</Property>
<Property name="proxy_buffering">off</Property>
<Property name="ssl_protocols">TLSv1.2 TLSv1.1</Property>
<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH</Property>
</Properties>
</VirtualHost>للحصول على معلومات حول البنية والقيم المسموح بها في الرمز المميّز ssl_ciphers، راجِع تشفير OpenSSL.
يُرجى العِلم أنّ هذا الرمز المميز يستخدم أسماء تشفير OpenSSL، مثل AES128-SHA256، وليس أسماء تشفير Java/JSSE، مثل TLS_RSA_WITH_AES_128_CBC_SHA256.
إنشاء مضيف افتراضي يستخدم HTTPS
يحدّد هذا المثال ملف تخزين المفاتيح للمضيف الافتراضي باستخدام مرجع. يتيح لك استخدام مرجع تغيير مخزن المفاتيح بدون الحاجة إلى إعادة تشغيل أجهزة التوجيه.
اتّبِع الإجراء التالي لإنشاء المضيف الافتراضي:
- أنشئ ملف تخزين مفاتيح باسم myTestKeystore واضبطه باستخدام الإجراء الموضّح هنا: ملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوقة. تأكَّد من أنّ ملف تخزين المفاتيح يستخدم اسمًا مستعارًا هو myKeyAlias للشهادة والمفتاح الخاص.
-
استخدِم طلب بيانات من واجهة برمجة التطبيقات POST التالي لإنشاء المرجع المسمّى keystoreref إلى ملف تخزين المفاتيح الذي أنشأته أعلاه:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \ -d '<ResourceReference name="keystoreref"> <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/keystoreref -u uname:password أنشئ المضيف الافتراضي باستخدام واجهة برمجة التطبيقات إنشاء مضيف افتراضي، حيث
<ms-IP>هو عنوان IP أو اسم النطاق لعقدة خادم الإدارة.تأكَّد من تحديد مرجع ملف تخزين المفاتيح واسم المفتاح المستعار الصحيحَين:
curl -X POST -H "Content-Type:application/xml" \ http://<ms-IP>:8080/v1/o/{org_name}/environments/{env_name}/virtualhosts \ -d '<VirtualHost name="newTLSTrustStore2"> <HostAliases> <HostAlias>apiTLS.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://keystoreref</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>' \ -u email:password- أنشئ سجلّ نظام أسماء نطاقات للمضيف الافتراضي يتطابق مع الاسم المستعار للمضيف.
إذا كانت لديك أي خوادم وكيل لواجهة برمجة التطبيقات، أضِف المضيف الظاهري إلى العنصر
<HTTPConnection>في ProxyEndpoint. تتم إضافة المضيف الافتراضي تلقائيًا إلى جميع خوادم وكيل واجهة برمجة التطبيقات الجديدة.راجِع تعديل خادم وكيل لواجهة برمجة التطبيقات بعد إنشاء مضيف افتراضي في لمحة عن المضيفين الافتراضيين.
بعد تعديل خادم وكيل لواجهة برمجة التطبيقات لاستخدام المضيف الظاهري وإنشاء سجلّ نظام أسماء النطاقات لاسم مستعار للمضيف، يمكنك الوصول إلى خادم وكيل لواجهة برمجة التطبيقات كما هو موضّح أدناه:
https://apiTLS.myCompany.com/v1/{project-base-path}/{resource-path}على سبيل المثال:
https://apiTLS.myCompany.com/v1/weather/forecastrss?w=12797282
إنشاء مراجع وتعديلها إلى ملف تخزين مفاتيح أو ملف تخزين شهادات
يمكنك اختياريًا ضبط المضيف الافتراضي لاستخدام مرجع إلى مخزن المفاتيح أو مخزن الشهادات الموثوقة بدلاً من ذلك. تتمثّل ميزة استخدام مرجع في إمكانية تعديل المرجع للإشارة إلى ملف تخزين مفاتيح أو ملف تخزين موثوق به مختلف من أجل تعديل شهادة TLS بدون الحاجة إلى إعادة تشغيل جهاز توجيه.
على سبيل المثال، يوضّح ما يلي مضيفًا افتراضيًا يستخدم مرجعًا إلى ملف تخزين المفاتيح:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>apiTLS.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9006</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://keystoreref</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost>استخدِم طلب بيانات من واجهة برمجة التطبيقات POST التالي لإنشاء المرجع المسمّى keystoreref:
curl -X POST -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
-d '<ResourceReference name="keystoreref">
<Refers>myTestKeystore</Refers>
<ResourceType>KeyStore</ResourceType>
</ResourceReference>'
-u email:password
يحدّد المرجع اسم ملف تخزين المفاتيح ونوعه.
استخدِم طلب بيانات من واجهة برمجة التطبيقات GET التالي لعرض المرجع:
curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password
لتغيير المرجع لاحقًا للإشارة إلى ملف تخزين مفاتيح مختلف، مع التأكّد من أنّ الاسم المستعار له الاسم نفسه، استخدِم طلب PUT التالي:
curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
<Refers>myNewKeystore</Refers>
<ResourceType>KeyStore</ResourceType>
</ResourceReference>'
-u email:password