رمزگذاری بینگرهای (یا گره به گره) از دادههایی که بین گرهها در خوشه جابهجا میشوند بااستفاده از TLS محافظت میکند. این صفحه نحوه فعال کردن رمزگذاری بین گرهی Cassandra بااستفاده از «امنیت لایه انتقال» در Edge for Private Cloud را توضیح میدهد. برای انجام این مراحل، باید با جزئیات حلقه Cassandra خود آشنا باشید.
فعال کردن رمزگذاری بین گرهی Cassandra
برای فعال کردن رمزگذاری بینگرهای Cassandra، این مراحل را دنبال کنید:
با دنبال کردن مراحل موجود در پیوست، گواهیهای سرور را تولید کنید تا کلید و گواهی خودامضا ایجاد شود.
مراحل زیر فرض میکنند که شما
keystore.node0وtruststore.node0را ایجاد کردهاید، همچنین گذرواژههای keystore و truststore را، همانطور که در پیوست توضیح داده شده است. پیشاز ادامه دادن به مراحل بعدی، باید فروشگاه کلید و فروشگاه اعتماد بهعنوان مراحل مقدماتی در هر گره ایجاد شود.- ویژگیهای زیر را به فایل
/opt/apigee/customer/application/cassandra.propertiesاضافه کنید. اگر فایل وجود ندارد، آن را ایجاد کنید.conf_cassandra_server_encryption_internode_encryption=all conf_cassandra_server_encryption_keystore=/opt/apigee/data/apigee-cassandra/keystore.node0 conf_cassandra_server_encryption_keystore_password=keypass conf_cassandra_server_encryption_truststore=/opt/apigee/data/apigee-cassandra/truststore.node0 conf_cassandra_server_encryption_truststore_password=trustpass # Optionally set the following to enable 2-way TLS or mutual TLS conf_cassandra_server_encryption_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 شروع شده است یا نه، گزارشهای سیستم را برای پیام زیر بررسی کنید:
Internode messaging enabled TLS protocols Internode messaging enabled cipher suites
انجام چرخش گواهینامه
برای چرخش گواهینامهها، این مراحل را دنبال کنید:
- گواهینامه هر جفت کلید تولیدشده یکتا (به پیوست مراجعه کنید) را به فروشگاه مطمئن گره Cassandra موجود اضافه کنید، بهطوریکه هم گواهینامههای قدیمی و هم گواهینامههای جدید در یک فروشگاه مطمئن وجود داشته باشند:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
که در آن
NEW_ALIASرشتهای منحصربهفرد برای شناسایی ورودی،CERTنام فایل گواهی برای افزودن، وEXISTING_TRUSTSTOREنام truststore موجود در گره Cassandra است. - از ابزار کپی، مانند scp، برای توزیع truststore به همه گرههای Cassandra در خوشه استفاده کنید و truststore موجود درحال استفاده توسط هر گره را جایگزین کنید.
- قبلاز اینکه کلیدهای جدید در جای خود قرار گیرند، برای بار کردن truststore جدید و ایجاد اعتماد برای کلیدهای جدید، بازراهاندازی چرخشی خوشه را انجام دهید:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- در هر گره Cassandra در خوشه، ویژگیهای نشاندادهشده در زیر را به مقادیر keystore جدید در فایل cassandra.properties بهروز کنید:
conf_cassandra_server_encryption_keystore=NEW_KEYSTORE_PATH conf_cassandra_server_encryption_keystore_password=NEW_KEYSTORE_PASSWORD
که
NEW_KEYSTORE_PATHمسیر دایرکتوریای است که فایل keystore در آن قرار دارد وNEW_KEYSTORE_PASSWORDگذرواژه keystore است که هنگام ایجاد گواهیها تنظیم شده است، همانطور که در پیوست توضیح داده شده است. - سرویس Cassandra را متوقف کنید:
/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 |
گذرکلید باید برای keystore و کلید یکسان باشد. |
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را در هر گره کپی کنید و آن را به truststore هر گره وارد کنید.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