مقدمة
تتصل المكوّنات المختلفة من Edge for Private Cloud، مثل معالجات الرسائل وخوادم الإدارة وأجهزة التوجيه، عبر قناة نص عادي بعُقد Cassandra تلقائيًا. على هذه القنوات، يتم نقل البيانات من وإلى Cassandra بشكل واضح. Apigee mTLS هي ميزة مستندة إلى شبكة خدمات Consul تضيف الأمان إلى الاتصالات بين المكوّنات في مجموعة Edge for Private Cloud. تضيف هذه الخدمة التي تقدّمها Apigee أيضًا أمان طبقة النقل الآمنة (TLS) إلى قناة الاتصال بين مكوّنات العميل وCassandra.
تتناول هذه المقالة عرضًا بديلاً جديدًا من Apigee يتم فيه تأمين الاتصال بين مكوّنات العميل وCassandra في Edge for Private Cloud من خلال بروتوكول أمان طبقة النقل المتبادل (المعروف أيضًا باسم بروتوكول أمان طبقة النقل الثنائي الاتجاه) باستخدام ميزات متاحة أصلاً في Cassandra بدون استخدام شبكة خدمة خارجية.
ميزة mTLS الأصلية
يعتمد تفعيل بروتوكول أمان طبقة النقل المتبادل (mTLS) بين Cassandra ومكوّنات العميل الموضّحة في هذه المقالة على ميزات بروتوكول أمان طبقة النقل (TLS) التي توفّرها Apache Cassandra بشكلٍ أصلي. عند تفعيل هذه الميزة، يتم إجراء تأكيد اتصال ثنائي الاتجاه عبر بروتوكول أمان طبقة النقل (TLS) مع العملاء قبل السماح بإنشاء الاتصالات. لغرض اتصال TLS ثنائي الاتجاه هذا، تعمل Cassandra كخادم وتعمل العديد من البرامج التي تتصل بـ Cassandra (مثل edge-message-processor وأداة cqlsh وما إلى ذلك) كبرامج.
بالنسبة إلى بروتوكول أمان طبقة النقل (TLS) الثنائي الاتجاه (أو بروتوكول أمان طبقة النقل المتبادل أو mTLS)، يجب إعداد كلّ من Cassandra والعملاء باستخدام ملف تخزين المفاتيح الخاص بهم. يجب أن يحتوي مخزن مفاتيح كل عقدة Cassandra على مفتاح وشهادة خاصَّين بها. يجب أن يحتوي مخزن مفاتيح كل تطبيق عميل على مفتاح وشهادة هذا العميل المحدّد. يجب إضافة truststore يحتوي على الشهادات وسلسلة الشهادات المرتبطة بها على كل من Cassandra والعملاء. يجب أن يحتوي truststore لكل عقدة Cassandra على شهادات العملاء، ويجب أن يحتوي truststore لكل عميل على شهادات جميع عقد Cassandra. يمكنك الرجوع إلى مقالة Two-Way TLS/SSL من Apigee للحصول على مزيد من المعلومات حول طريقة عمل المصافحة الثنائية الاتجاه لبروتوكول TLS بشكل عام.
ربط الشهادات
بشكل عام، في بروتوكول أمان طبقة النقل (TLS) الثنائي الاتجاه، يمكن إنشاء شهادات الخادم وشهادات العميل وسلاسل الشهادات ومخازن المفاتيح ومخازن الشهادات الموثوق بها بطرق مختلفة. وينطبق الأمر نفسه على Cassandra وmTLS الأصلي للعميل أيضًا. مع الأخذ في الاعتبار الطريقة التي تعمل بها المؤسسات عادةً على تشغيل Edge لمجموعات السحابة الخاصة وعدد أزواج الاتصال الفريدة بين العميل وCassandra التي يمكن إنشاؤها، تنصح Apigee باتّباع النهج العام التالي لضبط إعدادات المفاتيح والشهادات لهذه الميزة. تتوفّر طرق أخرى قابلة للتطبيق، ولكن من المرجّح أنّ الطريقة أدناه توفّر توازنًا جيدًا بين الأمان وتكاليف الصيانة.
احصل على شهادة جذر ومفتاح وسيط/زوج شهادات موقَّع من الجذر. قد تكون لديك بالفعل مفاتيح وشهادات من هذا النوع. إذا لم يكن لديك شهادة، يمكنك إنشاء شهادات ومفاتيح جذر ووسيطة موقَّعة ذاتيًا باستخدام الخطوات الواردة في الملحق 1.
- استخدِم المفتاح/الشهادة الوسيطة المشتركة من الأعلى لتوقيع جميع المفاتيح والشهادات الخاصة بالتطبيق (النهائية).
يؤدي توفّر مفتاح/شهادة وسيطة مشتركة في مجموعة واحدة إلى إعداد ملف truststore مشترك (يحتوي على سلسلة شهادات الجذر والشهادات الوسيطة نفسها) على كل عقدة Cassandra وعقدة العميل. يحصل كل من عقدة Cassandra وتطبيق العميل على مفتاح وشهادة فريدَين من نوعهما وموقّعَين بواسطة المفتاح/الشهادة الوسيطة المشتركة.
- إنّ تدوير شهادة ورقة شجر لعُقدة Cassandra أو تطبيق العميل أمر بسيط.
- لا يزال تدوير الشهادة المتوسطة أو شهادة الجذر عملية معقّدة إلى حدّ ما، ولكن سيكون معدّل تكرار عمليات التدوير هذه أقل بكثير من معدّل تكرار شهادات الأوراق.
استخدِم ممارسات الأمان في مؤسستك لتحديد ما إذا كنت ستستخدم شهادات جذر وشهادات وسيطة شائعة في مجموعات مختلفة من السحابة الخاصة. يمكنك الرجوع إلى الملحق 2 لمعرفة إعدادات الشهادات البديلة.
تقدّم الخطوات المتبقية في هذه المقالة تفاصيل حول المنهجية المذكورة أعلاه لتصميم المفاتيح والشهادات.
القيود والتنبيهات
تنطبق القيود التالية على هذه الميزة.
- لا يتوافق هذا العرض من mTLS الأصلي بين مكوّنات العميل وCassandra مع apigee-mtls. إذا كنت تستخدم هذه الميزة، لا يمكنك استخدام apigee-mtls والعكس صحيح.
- سيؤدي تفعيل بروتوكول أمان النقل المتبادل (mTLS) بين مكوّنات العميل وCassandra إلى حدوث بعض التأثير في الأداء على عمليات إنشاء الاتصالات بين العملاء وCassandra. قد تكون عمليات مثل بدء تشغيل البرامج أو توسيع نطاق اتصالات Cassandra أبطأ لأنّ Cassandra والبرامج يجب أن تتفاوض على بروتوكول أمان طبقة النقل (TLS) أولاً قبل بدء التواصل. يجب أن يكون التأثير طفيفًا وغير ملحوظ بشكل عام.
- في Cassandra، يمكن فرض بروتوكول النقل الآمن (mTLS) اختياريًا على اتصالات العميل الواردة. يمكن تفعيل التنفيذ، ولكن يجب إيقافه أثناء المهام التشغيلية، مثل ترقيات برامج Apigee وتفعيل ميزات TLS أو إيقافها وأنواع معيّنة من عمليات تدوير الشهادات. راجِع قسم العمليات والإعدادات لمزيد من التفاصيل.
- يتحمّل العميل مسؤولية إدارة الشهادات والمحافظة عليها.
- تتضمّن عملية تغيير الشهادات العديد من التفاصيل الدقيقة. يُرجى الرجوع إلى القسم عمليات تبديل الشهادات لمزيد من التفاصيل.
تفعيل ميزة mTLS الأصلية
بشكل عام، يتطلّب تفعيل ميزة mTLS الأصلية اتّباع 3 خطوات كما هو موضّح أدناه:
- احصل على شهادة جذر ومفتاح/شهادة وسيطة.
- أنشئ زوجًا من مفاتيح/شهادات العقدة الطرفية لعقدة Cassandra واحدة، ووقِّعه، وخزِّنه في ملف تخزين المفاتيح، واضبط Cassandra على بروتوكول TLS المتبادل الاختياري. كرِّر الخطوات لكل عقدة Cassandra واحدة في كل مرة.
- أنشئ زوجًا من مفتاح/شهادة العقدة الطرفية لتطبيق عميل واحد، ووقِّعه، وخزِّنه في ملف تخزين مفاتيح، واضبط تطبيق العميل على بروتوكول mTLS. كرِّر الخطوات على كل تطبيق عميل واحدًا تلو الآخر. تطبيقات العميل:
- edge-management-server
- edge-message-processor
- edge-router
في ما يلي الخطوات التفصيلية:
الحصول على شهادات الجذر والشهادات الوسيطة
احصل على شهادة جذر ومفتاح وسيط/زوج شهادات موقَّع من الجذر. استخدِم شهادة الجذر والشهادة الوسيطة الموقَّعتَين من مرجع التصديق (CA) الخاص بمؤسستك، أو أنشئ شهادات موقَّعة ذاتيًا. تخزين سلسلة شهادات الجذر والشهادات المتوسطة في ملف truststore يُرجى الرجوع إلى الملحق 1 للاطّلاع على الطلبات المفيدة. تفترض الأوامر اللاحقة أنّه يمكنك الوصول إلى الملفات التالية:
-
intermediate.key
: ملف المفتاح للشهادة الوسيطة لتوقيع الشهادات غير المخوّلة للتصديق - شهادة
intermediate-cert.pem
المتوسطة
ضبط عُقد Cassandra
- اختيار إحدى عُقد Cassandra
- أنشئ زوجًا من مفاتيح وشهادات الأوراق ووقِّعه باستخدام الشهادة الوسيطة. خزِّن المفتاح والشهادة الموقَّعة في ملف تخزين مفاتيح. المثال التالي:
# 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
ضَع ملفات keystore وtruststore في موقع محدّد على العُقدة وتأكَّد من أنّ مستخدم 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
- أنشئ ملفًا أو عدِّله
/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
بالإضافة إلى ذلك، بالنسبة إلى أنظمة التشغيل المتوافقة مع معيار FIPS، أضِف السمة التالية إلى ملف
/opt/apigee/customer/application/cassandra.properties
:conf_cassandra_client_encryption_protocol=TLSv1.2
تأكَّد من أنّ مستخدم Apigee يملك الملف ويمكنه قراءته:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- ضبط عقدة Cassandra وإعادة تشغيلها
apigee-service apigee-cassandra configure apigee-service apigee-cassandra restart
- كرِّر الخطوات أعلاه على كل عقدة Cassandra واحدة تلو الأخرى.
إعداد تطبيقات العميل
ينطبق هذا القسم على مكوّنات العميل التالية التي تتصل بـ Cassandra:
- edge-management-server
- edge-message-processor
- edge-router
- اختيار أحد مكوّنات العميل
- أنشئ زوجًا من مفاتيح وشهادات الأوراق ووقِّعه باستخدام الشهادة الوسيطة. خزِّن المفتاح والشهادة الموقَّعة في ملف تخزين مفاتيح. المثال التالي:
# 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
ضَع ملفات keystore وtruststore في موقع محدّد على العُقدة وتأكَّد من أنّ مستخدم 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
- إنشاء ملف إعداد وتعديله استنادًا إلى التطبيق الذي تريد إعداده
التطبيق ملف الإعداد خادم الإدارة /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
- أعِد تشغيل تطبيق العميل
# 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
- يمكنك التأكّد من ضبط SSL بشكل صحيح في تطبيق العميل من خلال البحث عن السجلات على النحو التالي في سجلّ نظام التطبيق المناسب:
تمت إضافة خيارات طبقة المقابس الآمنة إلى اتصال Cassandra
- كرِّر الخطوات أعلاه على كل تطبيق عميل مرة واحدة في كل مرة
العمليات والإعدادات
فرض استخدام mTLS
عندما لا يتم فرض استخدام بروتوكول أمان النقل المتبادل (mTLS) في Cassandra، تقبل Cassandra إما الاتصالات بنص عادي من العملاء أو العملاء الذين يمكنها إجراء مصافحة ثنائية الاتجاه عبر بروتوكول أمان طبقة النقل (TLS) معهم بنجاح. لكي يعمل فرض استخدام بروتوكول mTLS، يجب ضبط بروتوكول mTLS في Cassandra أولاً. يمكنك ضبط فرض استخدام بروتوكول mTLS في Cassandra باتّباع الخطوات التالية:
- اختيار إحدى عُقد Cassandra
- أنشئ ملفًا أو عدِّله
/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
- ضبط عقدة Cassandra وإعادة تشغيلها
apigee-service apigee-cassandra configure apigee-service apigee-cassandra restart
- كرِّر الخطوات أعلاه على كل عقدة Cassandra واحدة تلو الأخرى.
بعد فرض استخدام بروتوكول mTLS في Cassandra، لن تتمكّن أداة طلبات البحث العادية في Cassandra، أي cqlsh، من الاتصال بـ Cassandra مباشرةً. لإعداد cqlsh لبروتوكول SSL، أنشئ مفتاحًا وشهادة فرعية جديدة (مشابهة للمفتاح والشهادة الفرعية لتطبيقات العميل) ونفِّذ ما يلي:
- إنشاء ملف أو تعديله
$HOME/.cassandra/cqlshrc
- أضِف المحتوى التالي في الملف:
[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. يجب أن يكون هذا مفتاحًا/شهادة نهائية يمكنك إنشاؤها وتوقيعها باستخدام الشهادة الوسيطة.
-
- نفِّذ الأمر
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>
إيقاف فرض بروتوكول mTLS على Cassandra
لإيقاف فرض استخدام mTLS في Cassandra، اتّبِع الخطوات التالية:
- اختيار إحدى عُقد Cassandra
- أنشئ ملفًا أو عدِّله
/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
- ضبط عقدة Cassandra وإعادة تشغيلها
apigee-service apigee-cassandra configure apigee-service apigee-cassandra restart
- كرِّر الخطوات أعلاه على كل عقدة Cassandra واحدة تلو الأخرى.
إيقاف ميزة mTLS الأصلية
يتطلّب إيقاف ميزة mTLS الأصلية عدة خطوات، على غرار تفعيل ميزة mTLS الأصلية. في ما يلي الخطوات العامة:
- إيقاف فرض بروتوكول mTLS في Cassandra (في حال فرضه)
- أوقِف بروتوكول mTLS في جميع عُقد تطبيقات العميل التالية واحدة تلو الأخرى:
- edge-management-server
- edge-message-processor
- edge-router
- أنشئ ملف إعداد وعدِّله استنادًا إلى التطبيق الذي تريد إعداده:
التطبيق ملف الإعداد خادم الإدارة /opt/apigee/customer/application/management-server.properties
معالج الإدارة /opt/apigee/customer/application/message-processor.properties
جهاز التوجيه /opt/apigee/customer/application/router.properties
- أضِف الخصائص التالية أو عدِّلها في ملف الإعداد:
### TLS on CQL connections conf_cassandra_sslconfig.enable.tls=false conf_cassandra_sslconfig.enable.mtls=false
- تأكَّد من أنّ ملف الإعداد مملوك ويمكن للمستخدم apigee قراءته:
chown apigee:apigee configuration file ### Example: chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- أعِد تشغيل تطبيق العميل:
# 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
- كرِّر الخطوات من (أ) إلى (د) على كل تطبيق عميل، واحدًا تلو الآخر.
- أوقِف بروتوكول mTLS على جميع عُقد Cassandra واحدة تلو الأخرى:
- اختَر إحدى عُقد Cassandra.
- أنشئ ملفًا أو عدِّله
/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
- ضبط وإعادة تشغيل عقدة Cassandra
- كرِّر الخطوات من أ إلى ج على كل عقدة Cassandra، واحدة تلو الأخرى.
apigee-service apigee-cassandra configure apigee-service apigee-cassandra restart
عمليات تدوير الشهادات
التدوير لشهادات Leaf فقط (مع الاحتفاظ بشهادات Intermediate وRoot نفسها)يمكن اتّباع خطوات مشابهة لما ورد في إعداد تطبيقات العميل:
- إنشاء مفتاح/شهادة ورقة شجر جديد لتطبيق باستخدام المفتاح/الشهادة الوسيط نفسه
- اضبط مسار مفتاح/شهادة الورقة الجديدة في التطبيق مع كلمة المرور ونوع ملف تخزين المفاتيح.
- أعِد تشغيل التطبيق
إذا كنت تخطّط لتدوير الشهادة الوسيطة أو شهادة الجذر، ننصحك بإجراء ذلك كعملية متعدّدة الخطوات:
- أوقِف ميزة "بروتوكول أمان النقل المتبادل" (mTLS) الأصلية في Cassandra على مستوى مجموعتك.
- استخدِم شهادات الجذر والشهادات الوسيطة الجديدة لإنشاء شهادات جديدة للفرع أو التطبيق.
- اتّبِع الخطوات لتفعيل ميزة "أمان النقل المتبادل" (mTLS) الأصلية في Cassandra باستخدام مجموعة المفاتيح والشهادات الجديدة.
عمليات Apigee العامة
لإجراء عمليات Apigee العامة، مثل ترقية برنامج Apigee أو إضافة عُقد Cassandra أو إزالتها أو إضافة مراكز بيانات أو إزالتها أو تفعيل مصادقة Cassandra أو إيقافها وما إلى ذلك، تأكَّد من عدم فرض استخدام mTLS في Cassandra. إذا كنت قد فرضت استخدام mTLS، عليك إيقاف فرض الاستخدام قبل المتابعة في تنفيذ هذه العمليات.
الملحق 1
يمكن اتّباع الخطوات الواردة في هذا الملحق لإنشاء مفتاح/شهادة جذر ووسيط موقعَين ذاتيًا وإضافة سلسلة الشهادات هذه إلى ملف truststore.إنشاء شهادات جذر وشهادات وسيطة موقَّعة ذاتيًا
# 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
إنشاء ملف truststore
# 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: عمليات إعداد بديلة لسلسلة الشهادات
على الرغم من أنّ هذه المقالة تقترح إعدادًا معيّنًا لتسلسل الشهادات يحقّق التوازن بين الأمان وسهولة العمليات، تتوفّر بدائل أخرى موضّحة أدناه. تنطبق معظم المبادئ العامة على المنهجيات الأخرى أيضًا، مثل:
- استخدام مفاتيح وشهادات مباشرة لكل عقدة أو تطبيق عميل في Cassandra (بدون أي شهادات جذر أو شهادات وسيطة للتوقيع) سيؤدي ذلك على الأرجح إلى تعقيد عملية تدوير الشهادات.
- توفُّر مجموعات جذرية ومتوسطة متعددة لحالات الاستخدام المختلفة على سبيل المثال، تحتوي عقد Cassandra على مجموعة واحدة من شهادات الجذر/الوسيطة يتم من خلالها التوقيع على جميع شهادات الأوراق في Cassandra. وبالمثل، قد تحتوي جميع تطبيقات العميل على مجموعة منفصلة من شهادات الجذر/الشهادات الوسيطة لتوقيع شهادات التطبيقات الطرفية. تكون عمليات الإعداد هذه قابلة للتطبيق، ولكنها تتضمّن إضافة سلسلة شهادات الجذر/الشهادات الوسيطة إلى مستودع الثقة المناسب. في هذا المثال، يجب أن تحتوي ملفات truststore الخاصة بـ Cassandra على شهادات الجذر/الشهادات المتوسطة الخاصة بالعميل، ويجب أن تحتوي تطبيقات العميل على سلسلة الجذر/السلسلة المتوسطة لعُقد Cassandra في ملف truststore الخاص بها.
- على غرار ما ورد أعلاه، يمكنك الحصول على مجموعات متعددة من شهادات الجذر والشهادات المتوسطة لمناطق مختلفة، ولكن يجب إعلام جميع العملاء في جميع المناطق وجميع الخوادم في جميع المناطق بجميع سلاسل شهادات الجذر والشهادات المتوسطة من خلال إضافة جميعها إلى مستودع الثقة الذي تم إعداده.