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

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

http://ms_IP:8080

بدلاً من ذلك، يمكنك ضبط إمكانية الوصول إلى طبقة النقل الآمنة (TLS) لواجهة برمجة التطبيقات الخاصة بالإدارة حتى تتمكّن من الوصول إليها في الشكل التالي:

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. إذا لم يكن هذا الملف متوفّرًا، أنشِئه.

لضبط إمكانية الوصول إلى Management API باستخدام بروتوكول TLS:

  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 Management Server باستخدام الأمر:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

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

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

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

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

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

    حيث يكون FQ_domain_name هو اسم النطاق الكامل، وفقًا لشهادة عنوان خادم الإدارة، وport هو المنفذ المحدّد أعلاه من قِبل conf_webserver_ssl.port.

    إذا لم يكن ui.properties متوفّرًا، أنشِئه.

  5. في حال استخدام شهادة موقَّعة ذاتيًا (لا يُنصح بها في بيئة النشر المباشر) عند ضبط إذن الوصول إلى Management API عبر بروتوكول أمان طبقة النقل (TLS) أعلاه، أضِف السمة التالية إلى ui.properties:
    conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true

    وبخلاف ذلك، سترفض واجهة مستخدم Edge الشهادة الموقعة ذاتيًا.

  6. أعِد تشغيل واجهة مستخدم Edge من خلال تنفيذ الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

استخدام متجر مفاتيح PKCS12 لأنظمة التشغيل المتوافقة مع معيار FIPS

إذا كنت تستخدم Edge for Private Cloud على نظام تشغيل متوافق مع معيار FIPS، يجب استخدام ملف تخزين مفاتيح PKCS12. هذا الإجراء مطلوب للالتزام بمعايير FIPS. بالإضافة إلى الإعدادات العادية الأخرى المذكورة في هذه المقالة، أضِف الإعداد التالي إلى ملف management-server.properties:

conf/webserver.properties+keystore.type=PKCS12

احرص على تطبيق هذا التغيير إذا كانت بيئتك مزوّدة بمعايير FIPS لضمان التوافق مع معايير التشفير المطلوبة.

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

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

أماكن إقامة الوصف

conf_webserver_http.port=8080

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

conf_webserver_ssl.enabled=false

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

conf_webserver_http.turn.off=true

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

conf_webserver_ssl.port=8443

منفذ بروتوكول أمان طبقة النقل (TLS) أو طبقة المقابس الآمنة (SSL)

مطلوب عند تفعيل بروتوكول أمان طبقة النقل (TLS) أو طبقة المقابس الآمنة (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

اضبط إعدادات المتجر الموثوق به. حدِّد ما إذا كنت تريد قبول جميع الشهادات الخاصة ببروتوكول أمان طبقة النقل أو طبقة المقابس الآمنة (على سبيل المثال، لقبول الأنواع غير العادية). القيمة التلقائية هي 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_.*$

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

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

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

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

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