ضبط إعدادات mTLS الأصلية في Cassandra

مقدمة

تتصل المكوّنات المختلفة من Edge for Private Cloud، مثل معالِجات الرسائل وخوادم الإدارة وأجهزة التوجيه، بعُقد Cassandra عبر قناة نص عادي تلقائيًا. على هذه القنوات، يتم إرسال البيانات من Cassandra وإليها بشكل غير مشفّر. Apigee mTLS هي ميزة تستند إلى شبكة خدمات Consul وتضيف الأمان إلى الاتصالات بين المكوّنات في مجموعة Edge for Private Cloud. يضيف هذا العرض من Apigee أيضًا أمان بروتوكول أمان طبقة النقل (TLS) إلى قناة الاتصال بين مكوّنات العميل وCassandra.

تتناول هذه المقالة عرضًا بديلاً جديدًا من Apigee يتم فيه تأمين الاتصال بين مكوّنات العميل وCassandra في Edge for Private Cloud من خلال بروتوكول أمان طبقة النقل (TLS) الثنائي (المعروف أيضًا باسم بروتوكول أمان طبقة النقل (TLS) المتبادل) باستخدام ميزات متوفّرة في Cassandra بشكل أساسي بدون استخدام شبكة خدمات خارجية.

ميزة بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي

يعتمد تفعيل بروتوكول أمان طبقة النقل (TLS) الثنائي بين Cassandra ومكوّنات العميل الموضّحة في هذه المقالة على ميزات بروتوكول أمان طبقة النقل (TLS) التي توفّرها Apache Cassandra بشكل أساسي. عند تفعيل هذه الميزة، تُجري اتصالات العميل بـ Cassandra (على منفذ النقل الأساسي CQL رقم 9042) عملية تأكيد اتصال ثنائية عبر بروتوكول أمان طبقة النقل (TLS) مع العملاء قبل السماح بإنشاء الاتصالات. لغرض هذا الاتصال الثنائي عبر بروتوكول أمان طبقة النقل (TLS)، تعمل Cassandra كخادم وتعمل مختلف العملاء الذين يتصلون بـ Cassandra (مثل edge-message-processor وأداة cqlsh وما إلى ذلك) كعملاء.

بالنسبة إلى بروتوكول أمان طبقة النقل (TLS) الثنائي (أو بروتوكول أمان طبقة النقل (TLS) المتبادل أو mTLS)، يجب إعداد كل من Cassandra والعملاء باستخدام ملف تخزين المفاتيح الخاص بهم. يجب أن يحتوي ملف تخزين المفاتيح لكل عُقدة Cassandra على المفتاح والشهادة الخاصين بها. يجب أن يحتوي ملف تخزين المفاتيح لكل تطبيق عميل على المفتاح والشهادة الخاصين بهذا العميل. يجب إضافة ملف تخزين موثوق به يحتوي على الشهادات والسلسلة المرتبطة بها للطرف المقابل على كل من Cassandra والعملاء. يجب أن يحتوي ملف تخزين المفاتيح الموثوق بها لكل عُقدة Cassandra على شهادات العملاء، ويجب أن يحتوي ملف تخزين المفاتيح الموثوق بها لكل عميل على شهادات جميع عُقد Cassandra. يمكنك الرجوع إلى مقالة بروتوكول أمان طبقة النقل (TLS)/طبقة المقابس الآمنة (SSL) الثنائي من Apigee لمزيد من المعلومات حول كيفية عمل عملية تأكيد الاتصال الثنائية عبر بروتوكول أمان طبقة النقل (TLS) بشكل عام.

ربط الشهادات

بشكل عام، في بروتوكول أمان طبقة النقل (TLS) الثنائي، يمكن إنشاء شهادات الخادم وشهادات العميل وسلاسل الشهادات وملفات تخزين المفاتيح وملفات تخزين الشهادات الموثوق بها بطرق مختلفة. وينطبق الأمر نفسه على بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي لـ Cassandra والعميل. مع الأخذ في الاعتبار كيفية تشغيل المؤسسات عادةً لمجموعات Edge for Private Cloud وعدد أزواج الاتصال الفريدة بين العميل وCassandra التي يمكن إنشاؤها، تنصح Apigee باتّباع النهج العام التالي لضبط المفاتيح والشهادات لهذه الميزة. هناك طرق أخرى قابلة للتطبيق، ولكن من المحتمل أن توفّر الطريقة أدناه توازنًا جيدًا بين الأمان وتكاليف الصيانة.

  1. احصل على شهادة جذر وزوج من المفاتيح/الشهادات الوسيطة موقَّع من شهادة الجذر. قد تكون لديك هذه المفاتيح والشهادات حاليًا. إذا لم يكن الأمر كذلك، يمكنك إنشاء شهادات ومفاتيح جذر وشهادات متوسطة ومفاتيح موقَّعة ذاتيًا باستخدام الخطوات الواردة في الملحق 1.

  2. استخدِم المفتاح/الشهادة الوسيطة الشائعة من الخطوة أعلاه لتوقيع جميع المفاتيح والشهادات الخاصة بالتطبيق (النهائية).

إنّ وجود مفتاح/شهادة وسيطة شائعة في مجموعة واحدة يضمن ضبط ملف تخزين موثوق به شائع (يحتوي على سلسلة الشهادات الجذر والشهادات الوسيطة نفسها) على كل عُقدة Cassandra وعُقدة العميل. تحصل كل عُقدة Cassandra وتطبيق عميل على المفتاح والشهادة النهائية الفريدَين الخاصَين بها والموقَّعَين باستخدام المفتاح/الشهادة الوسيطة الشائعة.

  1. إنّ تدوير شهادة نهائية لعُقدة Cassandra أو تطبيق عميل هو عملية بسيطة.
  2. لا يزال تدوير شهادة وسيطة أو شهادة جذر عملية معقّدة إلى حد ما، ولكن سيكون تكرار عمليات التدوير هذه أقل بكثير من تكرار عمليات تدوير الشهادات النهائية.

استخدِم ممارسات الأمان في مؤسستك لتحديد ما إذا كنت تريد استخدام شهادات جذر وشهادات وسيطة شائعة في مجموعات السحابة الإلكترونية الخاصة المختلفة. يمكنك الرجوع إلى الملحق 2 لمعرفة إعدادات الشهادات البديلة.

توفّر الخطوات المتبقية في هذه المقالة تفاصيل عن المنهجية أعلاه لتصميم المفاتيح والشهادات.

القيود والتحذيرات

تنطبق القيود التالية على هذه الميزة.

  • لا يتوافق هذا العرض من بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي بين مكوّنات العميل وCassandra مع apigee-mtls. إذا كنت تستخدم هذه الميزة، لا يمكنك استخدام apigee-mtls والعكس صحيح.
  • سيؤثّر تفعيل بروتوكول أمان طبقة النقل (TLS) الثنائي بين مكوّنات العميل وCassandra في أداء الاتصالات التي يتم إنشاؤها بين العملاء وCassandra. قد تكون عمليات مثل بدء تشغيل العملاء أو توسيع نطاق اتصالات Cassandra أبطأ لأنّ Cassandra والعملاء يجب أن يتفاوضوا على بروتوكول أمان طبقة النقل (TLS) أولاً قبل بدء الاتصال. يجب أن يكون التأثير طفيفًا وغير ملحوظ بشكل عام.
  • على Cassandra، يمكن فرض بروتوكول أمان طبقة النقل (TLS) الثنائي اختياريًا على اتصالات العميل الواردة. على الرغم من إمكانية تفعيل عملية الفرض، يجب إيقافها أثناء المهام التشغيلية، مثل ترقيات برامج Apigee وتفعيل ميزات بروتوكول أمان طبقة النقل (TLS) أو إيقافها وأنواع معيّنة من عمليات تدوير الشهادات. راجِع قسم العمليات والإعدادات لمزيد من التفاصيل.
  • تقع مسؤولية إدارة الشهادات وصيانتها على عاتق العميل.
  • تتضمّن عمليات تدوير الشهادات جوانب دقيقة مختلفة. يُرجى الرجوع إلى قسم عمليات تدوير الشهادات لمزيد من التفاصيل.

تفعيل بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي

على مستوى عالٍ، يتضمّن تفعيل بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي 3 خطوات كما هو موضّح أدناه:

  1. احصل على شهادة جذر وزوج من المفاتيح/الشهادات الوسيطة.
  2. أنشئ زوجًا من المفاتيح/الشهادات النهائية لعُقدة Cassandra واحدة، ووقِّعه، وخزِّنه في ملف تخزين المفاتيح، واضبط Cassandra على بروتوكول أمان طبقة النقل (TLS) الثنائي الاختياري. كرِّر الخطوات لكل عُقدة Cassandra واحدة في كل مرة.
  3. أنشئ زوجًا من المفاتيح/الشهادات النهائية لتطبيق عميل واحد، ووقِّعه، وخزِّنه في ملف تخزين المفاتيح، واضبط تطبيق العميل على بروتوكول أمان طبقة النقل (TLS) الثنائي. كرِّر الخطوات على كل تطبيق عميل واحد في كل مرة. تطبيقات العميل:
    1. edge-management-server
    2. edge-message-processor
    3. edge-router

في ما يلي تفاصيل هذه الخطوات:

الحصول على شهادات الجذر والشهادات الوسيطة

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

  • intermediate.key : ملف المفتاح للشهادة الوسيطة لتوقيع الشهادات النهائية
  • intermediate-cert.pem : الشهادة الوسيطة

ضبط عُقد Cassandra

  1. اختَر عُقدة Cassandra واحدة
  2. أنشئ زوجًا من المفاتيح والشهادات النهائية ووقِّعه باستخدام الشهادة الوسيطة. خزِّن المفتاح والشهادة الموقَّعة في ملف تخزين المفاتيح. المثال التالي:
    
    # Generate Leaf key and csr
    openssl req -newkey rsa:2048 -keyout cass-node1.key -out cass-node1-req.pem -sha256 -days 365 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=yourip/emailAddress=cassnode1@yourorg.com"
    
    # leaf cert signed by intermediate
    openssl x509 -req -in cass-node1-req.pem -CAkey intermediate.key -CA intermediate-cert.pem -days 365 -CAcreateserial -out cass-node1-cert.pem
    
    # keystore packaging leaf key and cert
    openssl pkcs12 -export -clcerts -in cass-node1-cert.pem -inkey cass-node1.key -out cass-node1-keystore.pfx -name nativemtls -password pass:keystorepass

    ضَع ملفَي تخزين المفاتيح وتخزين الشهادات الموثوق بها في موقع معيّن على العُقدة وتأكَّد من إمكانية وصول مستخدم apigee إليهما

    cp cass-node1-keystore.pfx /opt/apigee/customer/application/
    cp truststore.pfx /opt/apigee/customer/application/
    
    chown apigee:apigee /opt/apigee/customer/application/cass-node1-keystore.pfx
    chown apigee:apigee /opt/apigee/customer/application/truststore.pfx

  3. أنشئ الملف /opt/apigee/customer/application/cassandra.properties أو عدِّله. أضِف المحتوى التالي في هذا الملف:
    ### Enable Cassandra TLS on CQL connections
    conf_cassandra_client_encryption_enabled=true
    
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    
    ### Keystore details
    conf_cassandra_client_encryption_keystore=/opt/apigee/customer/application/cass-node1-keystore.pfx
    conf_cassandra_client_encryption_keystore_password=keystorepass
    conf_cassandra_server_encryption_store_type=PKCS12
    
    ### Whether to enable 2-way TLS (or mTLS) - true or false
    conf_cassandra_client_encryption_require_client_auth=true
    
    ### When 2-way TLS is enabled, client certificate details need to be provided via a truststore
    conf_cassandra_client_encryption_truststore=/opt/apigee/customer/application/truststore.pfx
    conf_cassandra_client_encryption_truststore_password=trustpass
    conf_cassandra_client_encryption_store_type=PKCS12
    

    تأكَّد من أنّ مستخدم apigee هو مالك الملف ويمكنه قراءته:

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  4. اضبط عُقدة Cassandra وأعِد تشغيلها
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  5. كرِّر الخطوات أعلاه على كل عُقدة Cassandra واحدة في كل مرة

ضبط تطبيقات العميل

ينطبق هذا القسم على مكوّنات العميل التالية التي تتصل بـ Cassandra:

  • edge-management-server
  • edge-message-processor
  • edge-router

  1. اختَر أحد مكوّنات العميل
  2. أنشئ زوجًا من المفاتيح والشهادات النهائية ووقِّعه باستخدام الشهادة الوسيطة. خزِّن المفتاح والشهادة الموقَّعة في ملف تخزين المفاتيح. المثال التالي:
    
    # Generate Leaf key and csr
    openssl req -newkey rsa:2048 -keyout mgmt-node1.key -out mgmt-node1-req.pem -sha256 -days 365 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=yourip/emailAddress=mgmtnode1@yourorg.com"
    
    # leaf cert signed by intermediate
    openssl x509 -req -in mgmt-node1-req.pem -CAkey intermediate.key -CA intermediate-cert.pem -days 365 -CAcreateserial -out mgmt-node1-cert.pem
    
    # keystore packaging leaf key and cert
    openssl pkcs12 -export -clcerts -in mgmt-node1-cert.pem -inkey mgmt-node1.key -out mgmt-node1-keystore.pfx -name nativemtls -password pass:keystorepass
    

    ضَع ملفَي تخزين المفاتيح وتخزين الشهادات الموثوق بها في موقع معيّن على العُقدة وتأكَّد من إمكانية وصول مستخدم apigee إليهما

    cp mgmt-node1-keystore.pfx /opt/apigee/customer/application/
    cp truststore.pfx /opt/apigee/customer/application/
    
    chown apigee:apigee /opt/apigee/customer/application/mgmt-node1-keystore.pfx
    chown apigee:apigee /opt/apigee/customer/application/truststore.pfx

  3. أنشئ ملف الإعدادات وعدِّله استنادًا إلى التطبيق الذي تضبطه
    التطبيق ملف الإعدادات
    خادم الإدارة /opt/apigee/customer/application/management-server.properties
    معالِج الإدارة /opt/apigee/customer/application/message-processor.properties
    جهاز التوجيه /opt/apigee/customer/application/router.properties

    أضِف الإعدادات التالية في الملف:

    ### Enable TLS on CQL connections
    conf_cassandra_sslconfig.enable.tls=true
    conf_cassandra_sslconfig.enable.mtls=true
    
    ### Keystore Details
    conf_cassandra_sslconfig.keystore.path=/opt/apigee/customer/application/mgmt-node1-keystore.pfx
    conf_cassandra_sslconfig.keystore.password=keystorepass
    conf_cassandra_sslconfig.keystore.type=PKCS12
    
    ### Truststore Details
    conf_cassandra_sslconfig.truststore.path=/opt/apigee/customer/application/truststore.pfx
    conf_cassandra_sslconfig.truststore.password=trustpass
    conf_cassandra_sslconfig.truststore.type=PKCS12
    

    تأكَّد من أنّ مستخدم apigee هو مالك ملف الإعدادات ويمكنه قراءته

    chown apigee:apigee configuration file
    
    ### Example:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    

  4. أعِد تشغيل تطبيق العميل
    # Configure and restart service:
    apigee-service component configure
    apigee-service component restart
    # Example, to configure and restart message processor application
    apigee-service edge-message-processor configure
    apigee-service edge-message-processor restart
    
  5. يمكنك التأكّد من ضبط طبقة المقابس الآمنة (SSL) بشكل صحيح في تطبيق العميل من خلال البحث عن السجلّات التي تتضمّن الأسطر أدناه في سجلّ نظام التطبيق المناسب:

    خيارات طبقة المقابس الآمنة (SSL) التي تمت إضافتها إلى اتصال Cassandra

  6. كرِّر الخطوات أعلاه على كل تطبيق عميل واحد في كل مرة

العمليات والإعدادات

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

عندما لا يتم فرض بروتوكول أمان طبقة النقل (TLS) الثنائي في Cassandra، تقبل Cassandra إما اتصالات نص عادي من العملاء أو العملاء الذين يمكنها إجراء عملية تأكيد اتصال ثنائية عبر بروتوكول أمان طبقة النقل (TLS) معهم بنجاح. لكي يعمل فرض بروتوكول أمان طبقة النقل (TLS) الثنائي، يجب ضبط بروتوكول أمان طبقة النقل (TLS) الثنائي في Cassandra أولاً. يمكنك ضبط عملية فرض بروتوكول أمان طبقة النقل (TLS) الثنائي في Cassandra باتّباع الخطوات التالية:

  1. اختَر عُقدة Cassandra واحدة
  2. أنشئ الملف /opt/apigee/customer/application/cassandra.properties أو عدِّله. أضِف السمة التالية أو عدِّلها في هذا الملف:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=false
    

    تأكَّد من أنّ مستخدم apigee هو مالك الملف ويمكنه قراءته

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    
  3. اضبط عُقدة Cassandra وأعِد تشغيلها
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. كرِّر الخطوات أعلاه على كل عُقدة Cassandra واحدة في كل مرة

بعد فرض بروتوكول أمان طبقة النقل (TLS) الثنائي في Cassandra، لا يمكن لأداة طلبات البحث Cassandra العادية cqlsh الاتصال بـ Cassandra مباشرةً. لضبط cqlsh على طبقة المقابس الآمنة (SSL)، أنشئ مفتاحًا وشهادة نهائية جديدة (مشابهة للمفتاح والشهادة النهائية لتطبيقات العميل) ونفِّذ ما يلي:

  1. أنشئ الملف $HOME/.cassandra/cqlshrc أو عدِّله
  2. أضِف المحتويات التالية في الملف:
    [ssl]
    certfile = /home/admin-user/certs/inter-root.pem
    validate = false
    userkey = /home/admin-user/certs/cqlsh1.key
    usercert = /home/admin-user/certs/cqlsh1-cert.pem
    
    • certfile : ملف الشهادة الذي يحتوي على سلسلة الشهادات الجذر والشهادات الوسيطة
    • userkey : مفتاح العميل الذي سيستخدمه cqlsh يجب أن يكون هذا زوجًا من المفاتيح/الشهادات النهائية يمكنك إنشاؤه وتوقيعه باستخدام الشهادة الوسيطة.
    • usercert : شهادة العميل التي سيستخدمها cqlsh يجب أن يكون هذا زوجًا من المفاتيح/الشهادات النهائية يمكنك إنشاؤه وتوقيعه باستخدام الشهادة الوسيطة.
  3. نفِّذ الأمر cqlsh كالمعتاد مع تقديم الوسيطة --ssl. على سبيل المثال:
    $  /opt/apigee/apigee-cassandra/bin/cqlsh --ssl X.X.X.X
    Connected to Apigee at X.X.X.X:9042
    [cqlsh 6.0.0 | Cassandra 4.0.13 | CQL spec 3.4.5 | Native protocol v5]
    Use HELP for help.
    cqlsh>
    

إيقاف فرض بروتوكول أمان طبقة النقل (TLS) الثنائي على Cassandra

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

  1. اختَر عُقدة Cassandra واحدة
  2. أنشئ الملف /opt/apigee/customer/application/cassandra.properties أو عدِّله. أضِف السمة التالية أو عدِّلها في هذا الملف:
    ### Optional TLS - true or false
    conf_cassandra_client_encryption_optional=true
    

    تأكَّد من أنّ مستخدم apigee هو مالك الملف ويمكنه قراءته

    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    
  3. اضبط عُقدة Cassandra وأعِد تشغيلها
    apigee-service apigee-cassandra configure
    apigee-service apigee-cassandra restart
    
  4. كرِّر الخطوات أعلاه على كل عُقدة Cassandra واحدة في كل مرة

إيقاف بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي

إنّ إيقاف بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي هو عملية متعدّدة الخطوات، على غرار تفعيل بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي. في ما يلي الخطوات على مستوى عالٍ:

  1. أوقِف فرض بروتوكول أمان طبقة النقل (TLS) الثنائي في Cassandra (إذا تم فرضه)
  2. أوقِف بروتوكول أمان طبقة النقل (TLS) الثنائي في جميع عُقد تطبيقات العميل التالية واحدة تلو الأخرى:
    • edge-management-server
    • edge-message-processor
    • edge-router
    1. أنشئ ملف الإعدادات وعدِّله استنادًا إلى التطبيق الذي تضبطه:
      التطبيق ملف الإعدادات
      خادم الإدارة /opt/apigee/customer/application/management-server.properties
      معالِج الإدارة /opt/apigee/customer/application/message-processor.properties
      جهاز التوجيه /opt/apigee/customer/application/router.properties
    2. أضِف السمات التالية أو عدِّلها في ملف الإعدادات:
      ### TLS on CQL connections
      conf_cassandra_sslconfig.enable.tls=false
      conf_cassandra_sslconfig.enable.mtls=false
      
    3. تأكَّد من أنّ مستخدم apigee هو مالك ملف الإعدادات ويمكنه قراءته:
      chown apigee:apigee configuration file
      
      ### Example:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    4. أعِد تشغيل تطبيق العميل:
      
      # Configure and restart service:
      apigee-service component configure
      apigee-service component restart
      
      # Example, to configure and restart message processor application
      apigee-service edge-message-processor configure
      apigee-service edge-message-processor restart
      
    5. كرِّر الخطوات من #أ إلى #د على كل تطبيق عميل، واحد في كل مرة.
  3. أوقِف بروتوكول أمان طبقة النقل (TLS) الثنائي على جميع عُقد Cassandra واحدة تلو الأخرى:
    1. اختَر عُقدة Cassandra واحدة.
    2. أنشئ الملف /opt/apigee/customer/application/cassandra.properties أو عدِّله. أضِف السمة التالية أو عدِّلها في هذا الملف:
      ### Cassandra TLS on CQL connections
      conf_cassandra_client_encryption_enabled=false
      

      تأكَّد من أنّ مستخدم apigee هو مالك الملف ويمكنه قراءته

      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
      
    3. اضبط عُقدة Cassandra وأعِد تشغيلها
    4. apigee-service apigee-cassandra configure
      apigee-service apigee-cassandra restart
      
    5. كرِّر الخطوات من #أ إلى #ج على كل عُقدة Cassandra، واحدة في كل مرة.

عمليات تدوير الشهادات

تدوير الشهادات النهائية فقط (مع الاحتفاظ بالشهادات الوسيطة وشهادات الجذر نفسها)

يمكن اتّباع خطوات مشابهة لـ ضبط تطبيقات العميل:

  1. أنشئ مفتاحًا/شهادة نهائية جديدة لتطبيق باستخدام المفتاح/الشهادة الوسيطة نفسها
  2. اضبط المسار إلى المفتاح/الشهادة النهائية الجديدة في التطبيق مع كلمة المرور ونوع ملف تخزين المفاتيح
  3. أعِد تشغيل التطبيق
تدوير شهادات الجذر أو الشهادات الوسيطة

إذا كنت تخطط لتدوير الشهادة الوسيطة أو شهادة الجذر، يُنصح بإجراء ذلك كعملية متعدّدة الخطوات:

  1. أوقِف بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي لـ Cassandra في مجموعتك.
  2. استخدِم شهادات الجذر والشهادات الوسيطة الجديدة لإنشاء شهادات نهائية أو شهادات تطبيقات جديدة.
  3. اتّبِع خطوات تفعيل بروتوكول أمان طبقة النقل (TLS) الثنائي الأساسي لـ Cassandra باستخدام المجموعة الجديدة من المفاتيح والشهادات.

عمليات Apigee العامة

لإجراء عمليات Apigee العامة، مثل ترقية برامج Apigee أو إضافة عُقد Cassandra أو إزالتها أو إضافة مراكز بيانات أو إزالتها أو تفعيل مصادقة Cassandra أو إيقافها وما إلى ذلك، تأكَّد من عدم فرض بروتوكول أمان طبقة النقل (TLS) الثنائي في Cassandra. إذا كنت قد فرضت بروتوكول أمان طبقة النقل (TLS) الثنائي، أوقِف عملية الفرض قبل المتابعة في إجراء هذه العمليات.

الملحق 1

يمكن اتّباع الخطوات الواردة في هذا الملحق لإنشاء زوج من المفاتيح/الشهادات الجذر والشهادات الوسيطة الموقَّعة ذاتيًا وإضافة سلسلة الشهادات هذه إلى ملف تخزين موثوق به.

إنشاء شهادات جذر وشهادات وسيطة موقَّعة ذاتيًا

# Create self-signed root key and cert
openssl req -x509 -newkey rsa:2048 -keyout root.key -out root-cert.pem -sha256 -days 3650 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=root.yourorg.com/emailAddress=apigeeroot@yourorg.com"

# Create intermediate key and cert (signed by root)
openssl req -newkey rsa:2048 -keyout intermediate.key -out intermediate-req.pem -sha256 -days 3650 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=inter.yourorg.com/emailAddress=apigeeinter@yourorg.com"

openssl x509 -req -in intermediate-req.pem -CAkey root.key -CA root-cert.pem -days 3650 -CAcreateserial -out intermediate-cert.pem

إنشاء ملف تخزين موثوق به

# Merge root and intermediate cert into 1 file
cat intermediate-cert.pem > inter-root.pem
cat root-cert.pem >> inter-root.pem

# Create truststore to be used everywhere
keytool -keystore truststore.pfx -storetype PKCS12 -importcert -file inter-root.pem -keypass trustpass -storepass trustpass -alias nativemtls -noprompt

الملحق 2: إعدادات بديلة لربط الشهادات

على الرغم من أنّ هذه المقالة توصي بإعداد معيّن لـ ربط الشهادات يحقّق التوازن بين الأمان وسهولة العمليات، هناك بدائل موضّحة أدناه. تنطبق معظم المبادئ العامة على المنهجيات الأخرى أيضًا، مثل:

  1. الحصول على مفاتيح وشهادات نهائية مباشرةً لكل عُقدة Cassandra أو تطبيق عميل (بدون أي شهادات جذر أو شهادات وسيطة للتوقيع). من المحتمل أن يؤدي ذلك إلى تعقيد عملية تدوير الشهادات.
  2. الحصول على مجموعات متعدّدة من شهادات الجذر والشهادات الوسيطة لحالات استخدام مختلفة. على سبيل المثال، تحتوي عُقد Cassandra على مجموعة واحدة من شهادات الجذر والشهادات الوسيطة يتم من خلالها توقيع جميع الشهادات النهائية لـ Cassandra. وبالمثل، قد يكون لجميع تطبيقات العميل مجموعة منفصلة من شهادات الجذر والشهادات الوسيطة لتوقيع الشهادات النهائية للتطبيق. إنّ عمليات الإعداد هذه قابلة للتطبيق، ولكنها تتضمّن إضافة سلسلة الشهادات الجذر والشهادات الوسيطة إلى ملف تخزين الشهادات الموثوق بها المناسب. في هذا المثال، يجب أن تحتوي ملفات تخزين الشهادات الموثوق بها لـ Cassandra على شهادات الجذر والشهادات الوسيطة للعميل، ويجب أن تحتوي تطبيقات العميل على سلسلة الشهادات الجذر والشهادات الوسيطة لعُقد Cassandra في ملف تخزين الشهادات الموثوق بها.
  3. على غرار ما سبق، يمكنك الحصول على مجموعات متعدّدة من شهادات الجذر والشهادات الوسيطة لمناطق مختلفة، ولكن يجب إعلام جميع العملاء وجميع الخوادم في جميع المناطق بجميع سلاسل الشهادات الجذر والشهادات الوسيطة من خلال إضافة جميعها في ملف تخزين الشهادات الموثوق بها الذي تم ضبطه.