ضبط بروتوكول أمان طبقة النقل لواجهة برمجة التطبيقات للإدارة

يكون بروتوكول TLS غير مفعّل تلقائيًا لواجهة برمجة التطبيقات الإدارية، ويمكنك الوصول إلى واجهة برمجة التطبيقات الإدارية في Edge عبر HTTP باستخدام عنوان IP لعقدة خادم الإدارة والمنفذ 8080. على سبيل المثال:

http://ms_IP:8080

يمكنك بدلاً من ذلك ضبط وصول بروتوكول أمان طبقة النقل (TLS) إلى Management API لتتمكّن من الوصول إليها بالصيغة التالية:

https://ms_IP:8443

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

لضمان تشفير البيانات الواردة إلى Management API والصادرة منها، اضبط الإعدادات في ملف /opt/apigee/customer/application/management-server.properties.

بالإضافة إلى إعدادات بروتوكول TLS، يمكنك أيضًا التحكّم في عملية التحقّق من صحة كلمة المرور (طول كلمة المرور ومدى قوتها) من خلال تعديل الملف management-server.properties.

التأكّد من أنّ منفذ بروتوكول أمان طبقة النقل (TLS) مفتوح

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

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose

إعداد بروتوكول أمان طبقة النقل (TLS)

عدِّل ملف /opt/apigee/customer/application/management-server.properties للتحكّم في استخدام بروتوكول أمان طبقة النقل (TLS) في الزيارات من وإلى Management API. إذا لم يكن هذا الملف متوفّرًا، أنشئه.

لضبط وصول بروتوكول أمان طبقة النقل (TLS) إلى Management API:

  1. أنشئ ملف JKS لمخزن المفاتيح يحتوي على شهادة TLS والمفتاح الخاص. لمزيد من المعلومات، يُرجى الاطّلاع على ضبط بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) في Edge On Premises.
  2. انسخ ملف JKS الخاص بمخزن المفاتيح إلى دليل على عقدة خادم الإدارة، مثل /opt/apigee/customer/application.
  3. غيِّر ملكية ملف JKS إلى المستخدم "apigee":
    chown apigee:apigee keystore.jks

    حيث يمثّل keystore.jks اسم ملف تخزين المفاتيح.

  4. عدِّل /opt/apigee/customer/application/management-server.properties لضبط السمات التالية. إذا لم يكن هذا الملف متوفّرًا، أنشئه باتّباع الخطوات التالية:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    حيث keyStore.jks هو ملف تخزين المفاتيح، وobfuscatedPassword هي كلمة مرور ملف تخزين المفاتيح التي تم تشويشها. راجِع مقالة ضبط بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) في Edge On Premises للحصول على معلومات حول إنشاء كلمة مرور مشفّرة.

  5. أعِد تشغيل خادم إدارة Edge باستخدام الأمر:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

تتيح Management API الآن الوصول عبر بروتوكول أمان طبقة النقل (TLS).

ضبط واجهة مستخدم Edge الجديدة لاستخدام بروتوكول أمان طبقة النقل (TLS) للوصول إلى Edge API

في الإجراء أعلاه، نصحت Apigee بترك conf_webserver_http.turn.off=false حتى تتمكّن واجهة مستخدم New Edge من مواصلة إجراء طلبات بيانات من Edge API عبر HTTP.

استخدِم الإجراء التالي لإعداد واجهة مستخدم New Edge لإجراء هذه المكالمات عبر HTTPS فقط:

  1. اضبط إمكانية الوصول إلى Management API عبر بروتوكول أمان طبقة النقل (TLS) كما هو موضّح أعلاه.
  2. بعد التأكّد من عمل بروتوكول أمان طبقة النقل (TLS) مع Management API، عدِّل /opt/apigee/customer/application/management-server.properties لضبط السمة التالية:
    conf_webserver_http.turn.off=true
  3. أعِد تشغيل خادم إدارة Edge من خلال تنفيذ الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. عدِّل إعدادات واجهة مستخدم New Edge للاتصال بخادم الإدارة عبر HTTPS. اضبط السمات التالية في ملف إعدادات واجهة مستخدم New Edge:
    APIGEE_PORT_HTTP_MS=port
    MS_SCHEME=https

    حيث يمثّل port المنفذ الذي تم تحديده سابقًا من خلال conf_webserver_ssl.port (على سبيل المثال، 8443).

  5. طبِّق الإعدادات المعدَّلة على واجهة مستخدم New Edge:
    /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile

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

خصائص بروتوكول أمان طبقة النقل (TLS) لخادم الإدارة

يسرد الجدول التالي جميع سمات TLS/SSL التي يمكنك ضبطها في management-server.properties:

الخصائص الوصف

conf_webserver_http.port=8080

القيمة التلقائية هي 8080.

conf_webserver_ssl.enabled=false

لتفعيل/إيقاف بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) عند تفعيل TLS/SSL (صحيح)، يجب أيضًا ضبط سمتَي ssl.port وkeystore.path.

conf_webserver_http.turn.off=true

لتفعيل/إيقاف http مع https إذا أردت استخدام HTTPS فقط، اترك القيمة التلقائية على true.

conf_webserver_ssl.port=8443

منفذ TLS/SSL

مطلوب عند تفعيل بروتوكول أمان طبقة النقل/طبقة المقابس الآمنة (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.path=path

المسار إلى ملف تخزين المفاتيح

مطلوب عند تفعيل بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) (conf_webserver_ssl.enabled=true).

conf_webserver_keystore.password=password

استخدِم كلمة مرور مشوّشة بالتنسيق التالي: OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

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

conf_webserver_keymanager.password=password

إذا كان لمدير المفاتيح كلمة مرور، أدخِل نسخة مخفية من كلمة المرور بهذا التنسيق:

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

اضبط إعدادات مخزن شهادات الجذر الموثوق بها. حدِّد ما إذا كنت تريد قبول جميع شهادات بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) (على سبيل المثال، لقبول الأنواع غير العادية). القيمة التلقائية هي false. قدِّم مسار مخزن شهادات الجذر الموثوق بها، وأدخِل كلمة مرور مشفّرة لمخزن شهادات الجذر الموثوق بها بهذا التنسيق:

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

أشِر إلى أي مجموعات رموز تريد تضمينها أو استبعادها. على سبيل المثال، إذا اكتشفت ثغرة أمنية في تشفير، يمكنك استبعاده هنا. يُرجى الفصل بين الرموز المتعددة باستخدام الفواصل.

أي رموز تشفير تزيلها باستخدام القائمة السوداء لها الأولوية على أي رموز تشفير مضمّنة في القائمة البيضاء.

ملاحظة: في حال عدم تحديد قائمة محظورة أو قائمة مسموح بها، يتم تلقائيًا استبعاد الرموز المشفّرة التي تطابق التعبير العادي التالي في Java.

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

ومع ذلك، إذا حدّدت قائمة محظورة، سيتم تجاهل هذا الفلتر، وعليك حظر جميع مجموعات التشفير بشكل فردي.

للحصول على معلومات عن مجموعات التشفير وبنية التشفير، يُرجى الاطّلاع على مستندات موفّري Oracle لبنية تشفير Java لإصدار JDK 8.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

أعداد صحيحة تحدّد ما يلي:

  • حجم ذاكرة التخزين المؤقت لجلسة TLS/SSL (بالبايت) لتخزين معلومات الجلسة لعملاء متعدّدين
  • مقدار الوقت الذي يمكن أن تستغرقه جلسات TLS/SSL قبل انتهاء مهلتها (بالملي ثانية)