رمزگذاری بینگرهای (یا گره به گره) از دادههایی که بین گرهها در خوشه جابهجا میشوند بااستفاده از TLS محافظت میکند. این صفحه نحوه فعال کردن رمزگذاری بینگرهای Cassandra را بااستفاده از TLS در Edge برای Private Cloud توضیح میدهد. برای انجام این مراحل، باید با جزئیات حلقه Cassandra خود آشنا باشید.
فعال کردن رمزگذاری بینگرهای Cassandra
برای فعال کردن رمزگذاری بینگرهای Cassandra، مراحل زیر را در همه گرههای خوشه دنبال کنید. باید گواهینامههای عمومی هر گره را به همه گرهها توزیع کنید.
پساز انجام این کار، هر گره حاوی گواهینامههای
node0.cer، node1.cer و غیره در truststore خود خواهد بود. هر گره فقط
کلید خصوصی خودش را در
مخزن کلید خود خواهد داشت. برای مثال، node0 فقط حاوی node0.pem در
مخزن کلید خود خواهد بود. باید رمزگذاری را در هر گره، یکی یکی، فعال کنید.
برای فعال کردن رمزگذاری بینگرهای Cassandra، این مراحل را دنبال کنید:
با دنبال کردن مراحل موجود در پیوست، گواهیهای سرور را تولید کنید تا کلید و گواهی خودامضا ایجاد شود.
مراحل زیر فرض میکنند که شما
keystore.node0وtruststore.node0، و همچنین گذرواژههای keystore و truststore را همانطور که در پیوست توضیح داده شده است، ایجاد کردهاید. The keystore and truststore should be created as preliminary steps on each node before proceeding with next steps.- ویژگیهای زیر را به فایل
/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
انجام چرخش گواهینامه
برای چرخش گواهینامهها، این مراحل را دنبال کنید:
- گواهی هر جفت کلید تولیدشده یکتا را (به پیوست مراجعه کنید)
به truststore گره Cassandra موجود اضافه کنید، بهطوریکه هم گواهیهای قدیمی و هم گواهیهای جدید در همان
truststore وجود داشته باشند:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
که
NEW_ALIASرشتهای منحصربهفرد برای شناسایی ورودی است،CERTنام فایل گواهی برای افزودن است، وEXISTING_TRUSTSTOREنام truststore موجود در گره Cassandra است. - از یک ابزار کپی، مانند scp، برای توزیع truststore به تمام گرههای Cassandra در خوشه استفاده کنید و truststore موجود را که توسط هر گره استفاده میشود جایگزین کنید.
- برای بار کردن مخزن اعتماد جدید و ایجاد اعتماد برای کلیدهای جدید پیشاز اینکه در جای خود قرار بگیرند،
خوشه را بهصورت چرخشی بازراهاندازی کنید:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- در هر گره Cassandra در خوشه، ویژگیهای نشاندادهشده در زیر را به مقادیر جدید keystore در فایل 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 |
نام keystore. فرمانها فرض میکنند این فایل در دایرکتوری فعلی است. |
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