رمزگذاری بین گرهی (یا گره به گره) از دادههایی که بین گرههای یک خوشه منتقل میشوند بااستفاده از TLS محافظت میکند. این صفحه نحوه فعال کردن رمزگذاری بین گرهی Cassandra بااستفاده از «امنیت لایه انتقال» در Edge for Private Cloud را توضیح میدهد. برای انجام این مراحل، باید با جزئیات حلقه Cassandra خود آشنا باشید.
فعال کردن رمزگذاری بین گرهی Cassandra
برای فعال کردن رمزگذاری بین گرهی Cassandra، این مراحل را دنبال کنید:
با دنبال کردن مراحل پیوست، گواهیهای سرور تولید کنید تا کلید و گواهی خودامضایی ایجاد کنید.
مراحل زیر فرض میکند که
keystore.node0وtruststore.node0و همچنین گذرواژههای keystore و truststore را همانطور که در پیوست توضیح داده شده است ایجاد کردهاید. پیشاز ادامه دادن به مراحل بعدی، باید فروشگاه کلید و فروشگاه اطمینان بهعنوان مراحل مقدماتی در هر گره ایجاد شوند.- ویژگیهای زیر را به فایل
/opt/apigee/customer/application/cassandra.propertiesاضافه کنید. اگر فایل وجود ندارد، آن را ایجاد کنید.conf_cassandra_internode_encryption=all conf_cassandra_keystore=/opt/apigee/data/apigee-cassandra/keystore.node0 conf_cassandra_keystore_password=keypass conf_cassandra_truststore=/opt/apigee/data/apigee-cassandra/truststore.node0 conf_cassandra_truststore_password=trustpass # Optionally set the following to enable 2-way TLS or mutual TLS # conf_cassandra_require_client_auth=true
- مطمئن شوید که فایل
cassandra.propertiesمتعلق به کاربر apigee است:chown apigee:apigee \ /opt/apigee/customer/application/cassandra.properties
مراحل زیر را روی هر گره Cassandra، یکییکی، اجرا کنید تا تغییرات اعمال شود بدون اینکه برای کاربران زمان خرابی ایجاد شود:
- سرویس Cassandra را متوقف کنید:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- سرویس Cassandra را بازراهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- برای تعیین اینکه آیا سرویس رمزگذاری TLS شروع شده است یا نه، گزارشهای سیستم را برای پیام زیر بررسی کنید:
Starting Encrypted Messaging Service on TLS port
انجام چرخش گواهینامه
برای چرخش گواهینامهها، این مراحل را دنبال کنید:
- گواهینامه هر جفت کلید تولیدشده یکتا (به پیوست مراجعه کنید)
را به فروشگاه مطمئن گره Cassandra موجود اضافه کنید، بهطوریکه هم گواهینامههای قدیمی و هم گواهینامههای جدید در یک فروشگاه مطمئن وجود داشته باشند:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
که در آن
NEW_ALIASرشتهای منحصربهفرد برای شناسایی ورودی،CERTنام فایل گواهی برای افزودن، وEXISTING_TRUSTSTOREنام فروشگاه مطمئن موجود در گره Cassandra است. - از ابزار کپی، مانند scp، برای توزیع truststore به همه گرههای Cassandra در خوشه استفاده کنید و truststore موجود را که هر گره استفاده میکند جایگزین کنید.
- پیشاز اینکه کلیدهای جدید در جای خود قرار بگیرند، برای بار کردن مخزن اعتماد جدید و ایجاد اعتماد برای کلیدهای جدید، بازراهاندازی چرخشی خوشه را انجام دهید:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- در هر گره Cassandra در خوشه، ویژگیهای نشاندادهشده در زیر را به مقادیر جدید انبار کلید
در فایل cassandra.properties بهروز کنید:
conf_cassandra_keystore=NEW_KEYSTORE_PATH conf_cassandra_keystore_password=NEW_KEYSTORE_PASSOWRD
where
NEW_KEYSTORE_PATHis the path to the directory where the keystore file is located andNEW_KEYSTORE_PASSWORDis the keystore password set when the certificates were created, as explained in the Appendix. - Stop the Cassandra service:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- سرویس Cassandra را بازراهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- وقتی ارتباط بین همه گرهها باموفقیت برقرار شد، به گره Cassandra بعدی بروید. توجه: فقط درصورتی به گره بعدی بروید که ارتباط بین همه گرهها باموفقیت برقرار شده باشد.
ضمیمه
مثال زیر نحوه آماده کردن گواهینامههای سرور موردنیاز برای انجام مراحل رمزگذاری بین گرهی را توضیح میدهد. فرمانهای نشاندادهشده در مثال از پارامترهای زیر استفاده میکنند:
| پارامتر | شرح |
|---|---|
node0 |
هر رشته یکتایی برای شناسایی گره. |
keystore.node0 |
نام فروشگاه کلید. فرمانها فرض میکنند که این فایل در دایرکتوری فعلی است. |
keypass |
گذرواژه کلید باید برای هم کلیدفروشی و هم کلید یکسان باشد. |
dname |
نشانی IP node0 را بهعنوان 10.128.0.39 شناسایی میکند. |
-validity |
مقدار تنظیمشده در این پرچم باعث میشود جفت کلید تولیدشده برای ۱۰ سال معتبر باشد. |
- به فهرست راهنمای زیر بروید:
cd /opt/apigee/data/apigee-cassandra
- برای تولید فایلی به نام
keystore.node0در فهرست راهنمای فعلی، فرمان زیر را اجرا کنید:keytool -genkey -keyalg RSA -alias node0 -validity 3650 \ -keystore keystore.node0 -storepass keypass \ -keypass keypass -dname "CN=10.128.0.39, OU=None, \ O=None, L=None, C=None"
مهم: مطمئن شوید که گذرواژه کلید با گذرواژه keystore یکسان باشد.
- گواهینامه را به فایل جداگانهای صادر کنید:
keytool -export -alias node0 -file node0.cer \ -keystore keystore.node0
- مطمئن شوید که فایل فقط توسط کاربر apigee قابل خواندن باشد و هیچکس دیگری نتواند آن را بخواند:
$ chown apigee:apigee \ /opt/apigee/data/apigee-cassandra/keystore.node0 $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
- گواهی تولیدشده
node0.cerرا به truststore گره وارد کنید:keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node0
فرمان بالا از شما میخواهد گذرواژه تنظیم کنید. این گذرواژه truststore است و میتواند با گذرواژه keystore که قبلاً تنظیم کردهاید متفاوت باشد. اگر از شما خواسته شد به گواهی اعتماد کنید،
yesرا وارد کنید. - از openssl برای تولید فایل PEM گواهی بدون کلید استفاده کنید. توجه داشته باشید که
cqlshبا گواهینامه در قالب تولیدشده کار نمیکند.$ keytool -importkeystore -srckeystore keystore.node0 \ -destkeystore node0.p12 -deststoretype PKCS12 -srcstorepass \ keypass -deststorepass keypass $ openssl pkcs12 -in node0.p12 -nokeys -out node0.cer.pem \ -passin pass:keypass $ openssl pkcs12 -in node0.p12 -nodes -nocerts -out node0.key.pem -passin pass:keypass
- برای رمزگذاری گره به گره، فایل
node0.cerرا در هر گره کپی کنید و آن را به مخزن اعتماد هر گره وارد کنید.keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node1
- از
keytool -listبرای بررسی گواهینامهها در فایلهای keystore و truststore استفاده کنید:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0