ضبط Apigee mTLS

بعد تثبيت Apigee mTLS على جميع العُقد في مجموعتك، عليك ضبط المكوّن apigee-mtls وإعداده. يمكنك إجراء ذلك عن طريق إنشاء زوج شهادة/مفتاح وتعديل ملف الإعداد على جهاز الإدارة. بعد ذلك، عليك نشر الملفات التي تم إنشاؤها وملف الإعداد نفسه على جميع العُقد في المجموعة وإعداد مكوّن apigee-mtls المحلي.

إعداد apigee-mtls (بعد التثبيت الأولي)

يوضِّح هذا القسم كيفية ضبط Apigee mTLS مباشرةً بعد التثبيت الأولي. للحصول على معلومات عن تعديل عملية تثبيت حالية لبرنامج Apigee mTLS، راجِع تغيير إعدادات apigee-mtls الحالية.

ينطبق هذا القسم على عمليات التثبيت في مركز بيانات واحد. للحصول على معلومات حول ضبط Apigee mTLS في إعداد مركز بيانات متعدد، راجِع ضبط عدة مراكز بيانات لبرنامج Apigee mTLS.

في ما يلي العملية العامة لضبط apigee-mtls:

  1. تعديل ملف الإعداد: على جهاز الإدارة، يمكنك تعديل ملف الإعداد لتضمين إعدادات apigee-mtls.
  2. تثبيت Consul وإنشاء بيانات الاعتماد: ثبِّت Consul واستخدِم (اختياريًا) لإنشاء بيانات اعتماد TLS (مرة واحدة فقط).

    بالإضافة إلى ذلك، يمكنك تعديل ملف إعداد Apigee mTLS لإجراء ما يلي:

    1. إضافة معلومات بيانات الاعتماد
    2. تحديد طوبولوجيا المجموعة العنقودية

    لاحظ أنه يمكنك استخدام بيانات الاعتماد الحالية أو إنشاءها باستخدام Consul.

  3. توزيع بيانات الاعتماد وملف الإعداد: يمكنك توزيع زوج الشهادات/المفاتيح نفسهما الذي تم إنشاؤه وملف الإعداد المعدَّل على جميع العُقد في مجموعتك.
  4. إعداد apigee-mtls: عليك إعداد المكوّن apigee-mtls على كل عقدة

يتم وصف كل خطوة من هذه الخطوات في الأقسام التالية.

الخطوة 1: تعديل ملف الضبط

يوضِّح هذا القسم كيفية تعديل ملف الإعداد ليتضمن خصائص إعداد mTLS. لمزيد من المعلومات العامة حول ملف الإعداد، راجِع إنشاء ملف إعداد.

بعد تعديل ملف الإعداد بالسمات المرتبطة ببروتوكول mTLS، انسخه في جميع العُقد في المجموعة قبل إعداد المكوّن apigee-mtls على تلك العُقد.

لتعديل ملف الإعداد:

  1. على جهاز الإدارة، افتح ملف الإعداد للتعديل.
  2. انسخ المجموعة التالية من خصائص ضبط mTLS والصقها في ملف الإعداد:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"

    حدِّد قيمة كل خاصية لتتوافق مع الإعدادات.

    يوضِّح الجدول التالي خصائص الإعداد هذه:

    الموقع الوصف
    ALL_IP قائمة مفصولة بمسافات تضم عناوين IP للمضيف الخاص لجميع العُقد في المجموعة.

    لا يهم ترتيب عناوين IP، غير أنّه يجب أن يكون واحدًا في جميع ملفات الإعداد على مستوى المجموعة.

    في حال ضبط Apigee mTLS لمراكز بيانات متعدّدة، يجب إدراج جميع عناوين IP لجميع المضيفين في جميع المناطق.

    LDAP_MTLS_HOSTS عنوان IP للمضيف الخاص لعقدة OpenLDAP في المجموعة.
    ZK_MTLS_HOSTS

    قائمة بعناوين IP للمضيف الخاص مفصولة بمسافات وتتم استضافة عُقد ZooKeeper في المجموعة عليها.

    استنادًا إلى المتطلبات، يجب أن تكون هناك ثلاث عُقد ZooKeeper على الأقل.

    CASS_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص ومفصولة بمسافات يتم استضافة خوادم Cassandra عليها في المجموعة.
    PG_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص ومفصولة بمسافات يتم استضافة خوادم Postgres عليها في المجموعة.
    RT_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص مفصولة بمسافات والتي تتم عليها استضافة أجهزة التوجيه في المجموعة.
    MTLS_ENCAPSULATE_LDAP تشفِّر حركة بيانات LDAP بين معالج الرسائل وخادم LDAP. اضبط النوع على y.
    MS_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص ومفصولة بمسافات، حيث تتم استضافة عُقد خادم الإدارة في المجموعة.
    MP_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص مفصولة بمسافات حيث تتم استضافة معالجات الرسائل في المجموعة.
    QP_MTLS_HOSTS قائمة بعناوين IP للمضيف الخاص ومفصولة بمسافات والتي تتم عليها استضافة خوادم Qpid في المجموعة.
    ENABLE_SIDECAR_PROXY تحدد ما إذا كان يجب على Cassandra وPostgres أن تكون على دراية بشبكة الخدمة المتداخلة.

    ويجب ضبط هذه القيمة على "y".

    ENCRYPT_DATA مفتاح التشفير بترميز base64 والذي تستخدمه Consul. لقد أنشأت هذا المفتاح باستخدام الأمر consul keygen في الخطوة 2: تثبيت Consul وإنشاء بيانات الاعتماد.

    يجب أن تكون هذه القيمة متماثلة في جميع العُقد في المجموعة.

    PATH_TO_CA_CERT موقع ملف الشهادة على العقدة. لقد أنشأت هذا الملف في الخطوة 2: تثبيت Consul وإنشاء بيانات الاعتماد.

    يجب أن يكون هذا الموقع متطابقًا في جميع العُقد في المجموعة حتى تكون ملفات الإعداد متطابقة.

    يجب أن تكون الشهادة بترميز X509v3.

    PATH_TO_CA_KEY موقع ملف المفتاح على العقدة. لقد أنشأت هذا الملف في الخطوة 2: تثبيت Consul وإنشاء بيانات الاعتماد.

    يجب أن يكون هذا الموقع متطابقًا في جميع العُقد في المجموعة حتى تكون ملفات الإعداد متطابقة.

    يجب أن يكون ملف المفتاح بترميز X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    يشير هذا إلى عدد الأيام التي تكون فيها الشهادة صالحة عند إنشاء شهادة مخصّصة.

    القيمة التلقائية هي 365. الحد الأقصى للقيمة هو 7,865 يومًا (5 سنوات).

    بالإضافة إلى السمات المذكورة أعلاه، يستخدم Apigee mTLS العديد من الخصائص الإضافية عند تثبيته على إعداد مركز بيانات متعددة. لمزيد من المعلومات، راجِع ضبط عدّة مراكز بيانات.

  3. تأكّد من ضبط ENABLE_SIDECAR_PROXY على y.
  4. عدِّل عناوين IP في المواقع الإلكترونية المرتبطة بالمضيف. احرص على استخدام عناوين IP الخاصة عند الإشارة إلى كل عقدة، وليس إلى عناوين IP العامة.

    وفي الخطوات اللاحقة، يمكنك ضبط قيم السمات الأخرى، مثل ENCRYPT_DATA وPATH_TO_CA_CERT وPATH_TO_CA_KEY. لم تحدّد قيمها بعد.

    عند تعديل خصائص الإعداد apigee-mtls، يُرجى ملاحظة ما يلي:

    • جميع السمات هي سلاسل، ويجب أن تلفّ قيم جميع السمات بين علامات اقتباس مفردة أو مزدوجة.
    • إذا كانت القيمة المتعلّقة بالمضيف تحتوي على أكثر من عنوان IP خاص واحد، افصل بين عناوين IP بمسافة.
    • استخدِم عناوين IP خاصة وليس أسماء مضيفين أو عناوين IP علنية لجميع السمات المرتبطة بالمضيف في ملف الإعداد.
    • يجب أن تكون عناوين IP في قيمة السمة بالترتيب نفسه في جميع ملفات الإعداد على مستوى المجموعة.
  5. احفظ التغييرات التي أجريتها في ملف الإعدادات.

الخطوة 2: تثبيت Consul وإنشاء بيانات الاعتماد

يوضِّح هذا القسم كيفية تثبيت Consul وإنشاء بيانات الاعتماد التي تستخدمها المكونات المفعّلة في mTLS.

يجب اختيار إحدى الطريقتَين التاليتَين لإنشاء بيانات الاعتماد:

  • (إجراء يُنصح به) إنشاء مرجع تصديق خاص بك باستخدام Consul، كما هو موضّح في هذا القسم
  • استخدام بيانات اعتماد مرجع تصديق حالي مع Apigee mTLS (إعدادات متقدّمة)

لمحة عن بيانات الاعتماد

تتألف بيانات الاعتماد مما يلي:

  • الشهادة: شهادة TLS
  • المفتاح: المفتاح العام لبروتوكول أمان طبقة النقل (TLS)
  • رسالة الشائعات: مفتاح تشفير base-64

يمكنك إنشاء نسخة واحدة من كل ملف من هذه الملفات مرة واحدة فقط. يمكنك بعد ذلك نسخ المفتاح وملفات الشهادات إلى جميع العُقد في المجموعة وإضافة مفتاح التشفير إلى ملف التهيئة الذي تنسخه أيضًا إلى جميع العُقد.

لمزيد من المعلومات حول تنفيذ تشفير Consul، راجع ما يلي:

تثبيت Consul وإنشاء بيانات الاعتماد

لإنشاء بيانات الاعتماد التي يستخدمها Apigee mTLS لمصادقة الاتصالات الآمنة بين العُقد في مجموعة Private Cloud الخاصة بك، استخدِم برنامج Consul ثنائي محلي . ونتيجة لذلك، يجب تثبيت Consul على جهاز الإدارة قبل أن تتمكن من إنشاء بيانات الاعتماد.

لتثبيت Consul وإنشاء بيانات اعتماد mTLS:

  1. على جهاز الإدارة، نزِّل برنامج Consul 1.8.0 الثنائي من موقع HashiCorp الإلكتروني.
  2. استخرِج محتوى ملف الأرشيف الذي تم تنزيله. على سبيل المثال، استخرِج المحتوى إلى /opt/consul/.
  3. على جهازك الإداري، أنشِئ مرجع تصديقًا جديدًا من خلال تنفيذ الأمر التالي:
    /opt/consul/consul tls ca create

    ينشئ Consul الملفات التالية التي تشكل زوج شهادة/مفتاح:

    • consul-agent-ca.pem (الشهادة)
    • consul-agent-ca-key.pem (مفتاح)

    يتم تلقائيًا ترميز ملفات المفتاح والشهادة باستخدام X509v3.

    لاحقًا، ستقوم بنسخ هذه الملفات إلى جميع العقد في المجموعة. في الوقت الحالي، ومع ذلك، عليك تحديد المكان الذي ستضعه على العُقد فقط. ويجب أن تكون في الموقع نفسه في كل عُقدة. مثلاً: /opt/apigee/

  4. في ملف الإعداد، اضبط قيمة PATH_TO_CA_CERT على الموقع الذي سيتم نسخ ملف consul-agent-ca.pem إليه في العقدة. مثلاً:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. اضبط قيمة PATH_TO_CA_KEY على الموقع الذي سيتم نسخ ملف consul-agent-ca-key.pem إليه في العقدة. مثلاً:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. يمكنك إنشاء مفتاح تشفير لـ Consul من خلال تنفيذ الأمر التالي:
    /opt/consul/consul keygen

    تنتج Consul سلسلة عشوائية تشبه ما يلي:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. انسخ هذه السلسلة التي تم إنشاؤها واضبطها كقيمة للسمة ENCRYPT_DATA في ملف الإعداد. على سبيل المثال:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. احفظ ملف الإعداد.

يوضّح المثال التالي الإعدادات ذات الصلة ببروتوكول mTLS في ملف ضبط (مع أمثلة على القيم):

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

الخطوة 3: توزيع ملف الإعداد وبيانات الاعتماد

انسخ الملفات التالية إلى جميع العُقد باستخدام أداة مثل scp:

  • ملف الإعداد: يمكنك نسخ النسخة المعدّلة من هذا الملف واستبدال النسخة الحالية على جميع العُقد (وليس فقط العُقد التي تعرض ZooKeeper).
  • consul-agent-ca.pem: انسخ إلى الموقع الذي حددته كقيمة PATH_TO_CA_CERT في ملف الإعداد.
  • consul-agent-ca-key.pem: انسخ إلى الموقع الذي حددته كقيمة PATH_TO_CA_KEY في ملف الإعداد.

تأكَّد من أن المواقع التي تنسخ إليها الشهادة وملفات المفتاح تتطابق مع القيم التي حددتها في ملف الإعداد في الخطوة 2: تثبيت Consul وإنشاء بيانات الاعتماد.

الخطوة 4: إعداد apigee-mtls

بعد تثبيت apigee-mtls في كل عقدة، وتعديل ملف الإعداد، ونسخه وبيانات الاعتماد إلى جميع العُقد في المجموعة، يمكنك ضبط مكوّن apigee-mtls على كل عقدة.

لإعداد apigee-mtls:

  1. سجِّل الدخول إلى عقدة في المجموعة بصفتك المستخدم الجذر. يمكنك تنفيذ هذه الخطوات على العُقد بأي ترتيب تريده.
  2. اجعل مستخدم apigee:apigee مالكًا لملف الإعداد المعدّل، كما يوضِّح المثال التالي:
    chown apigee:apigee config_file
  3. يمكنك ضبط المكوِّن apigee-mtls من خلال تنفيذ الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (اختياري) نفِّذ الأمر التالي للتحقُّق من نجاح الإعداد:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. ابدأ Apigee mTLS بتنفيذ الأمر التالي:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    بعد تثبيت Apigee mTLS، يجب بدء هذا المكوّن قبل أي مكوّنات أخرى على العقدة.

  6. (عُقد كاساندرا فقط) تتطلب "كاساندرا" وسيطات إضافية للعمل ضمن الشبكة الأمنية. ونتيجةً لذلك، عليك تنفيذ الأوامر التالية في كل عقدة Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (عُقد Postgres فقط) تتطلّب Postgres وسيطات إضافية للعمل ضمن الشبكة الأمنية. ونتيجةً لذلك، يجب عليك إجراء ما يلي في عُقد Postgres:

    (الأساسية فقط)

    1. نفِّذ الأوامر التالية في عقدة Postgres الأساسية:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (وضع الاستعداد فقط)

    1. الاحتفاظ بنسخة احتياطية من بيانات Postgres الحالية لتثبيت Apigee mTLS، يجب إعادة إعداد العُقد الأساسية/الاستعداد، وبالتالي ستفقد البيانات. لمزيد من المعلومات، يُرجى الاطّلاع على إعداد النسخ الاحتياطي الأساسي/الاحتفاظ بنسخة احتياطية لـ Postgres.
    2. حذف جميع بيانات Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. اضبط Postgres ثم أعِد تشغيل Postgres، كما يوضِّح المثال التالي:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    إذا كنت تريد التثبيت على طوبولوجيا مركز بيانات متعددة، استخدِم مسارًا مطلقًا لملف الإعداد.

  8. ابدأ مكوّنات Apigee المتبقية على العقدة في ترتيب البدء، كما يوضِّح المثال التالي:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. كرر هذه العملية لكل جزء في المجموعة.
  10. (اختياري) تحقَّق من أنّ apigee-mtls عملية الإعداد كانت ناجحة باستخدام طريقة واحدة أو أكثر من الطرق التالية:
    1. التحقّق من صحة إعدادات iptables
    2. التحقُّق من حالة الخادم الوكيل البعيد
    3. التحقق من حالة النصاب

    يتم توضيح كل طريقة من هذه الطرق في التحقّق من الإعدادات.

تغيير إعدادات apigee-mtls حالية

لتخصيص إعداد apigee-mtls حالي، عليك إلغاء تثبيت apigee-mtls وإعادة تثبيته. يجب أن تتأكد أيضًا من تطبيق التخصيص على جميع العقد.

لتوضيح هذه النقطة، عند تغيير إعدادات Apigee mTLS الحالية:

  • إذا غيّرت ملف الإعداد، عليك أولاً إلغاء تثبيت apigee-mtls وإعادة تشغيل setup أو configure:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • يجب إلغاء تثبيت setup أو configure وإعادة تشغيلها على جميع العُقد في المجموعة، وليس فقط على عقدة واحدة.