فعال کردن رمزگذاری بین گرهی Cassandra

رمزگذاری بین گرهی (یا گره به گره) از داده‌هایی که بین گره‌های یک خوشه منتقل می‌شوند بااستفاده از TLS محافظت می‌کند. این صفحه نحوه فعال کردن رمزگذاری بین گرهی Cassandra بااستفاده از «امنیت لایه انتقال» در Edge for Private Cloud را توضیح می‌دهد. برای انجام این مراحل، باید با جزئیات حلقه Cassandra خود آشنا باشید.

فعال کردن رمزگذاری بین گرهی Cassandra

برای فعال کردن رمزگذاری بین گرهی Cassandra، این مراحل را دنبال کنید:

  1. با دنبال کردن مراحل پیوست، گواهی‌های سرور تولید کنید تا کلید و گواهی خودامضایی ایجاد کنید.

    مراحل زیر فرض می‌کند که keystore.node0 و truststore.node0 و همچنین گذرواژه‌های keystore و truststore را همان‌طور که در پیوست توضیح داده شده است ایجاد کرده‌اید. پیش‌از ادامه دادن به مراحل بعدی، باید فروشگاه کلید و فروشگاه اطمینان به‌عنوان مراحل مقدماتی در هر گره ایجاد شوند.

  2. ویژگی‌های زیر را به فایل /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
  3. مطمئن شوید که فایل cassandra.properties متعلق به کاربر apigee است:
    chown apigee:apigee \
    /opt/apigee/customer/application/cassandra.properties

مراحل زیر را روی هر گره Cassandra، یکی‌یکی، اجرا کنید تا تغییرات اعمال شود بدون اینکه برای کاربران زمان خرابی ایجاد شود:

  1. سرویس Cassandra را متوقف کنید:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra stop
  2. سرویس Cassandra را بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra start
  3. برای تعیین اینکه آیا سرویس رمزگذاری TLS شروع شده است یا نه، گزارش‌های سیستم را برای پیام زیر بررسی کنید:
    Starting Encrypted Messaging Service on TLS port

انجام چرخش گواهینامه

برای چرخش گواهینامه‌ها، این مراحل را دنبال کنید:

  1. گواهینامه هر جفت کلید تولیدشده یکتا (به پیوست مراجعه کنید) را به فروشگاه مطمئن گره Cassandra موجود اضافه کنید، به‌طوری‌که هم گواهینامه‌های قدیمی و هم گواهینامه‌های جدید در یک فروشگاه مطمئن وجود داشته باشند:
    keytool -import -v -trustcacerts -alias NEW_ALIAS \
    -file CERT -keystore EXISTING_TRUSTSTORE

    که در آن NEW_ALIAS رشته‌ای منحصربه‌فرد برای شناسایی ورودی، CERT نام فایل گواهی برای افزودن، و EXISTING_TRUSTSTORE نام فروشگاه مطمئن موجود در گره Cassandra است.

  2. از ابزار کپی، مانند scp، برای توزیع truststore به همه گره‌های Cassandra در خوشه استفاده کنید و truststore موجود را که هر گره استفاده می‌کند جایگزین کنید.
  3. پیش‌از اینکه کلیدهای جدید در جای خود قرار بگیرند، برای بار کردن مخزن اعتماد جدید و ایجاد اعتماد برای کلیدهای جدید، بازراه‌اندازی چرخشی خوشه را انجام دهید:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra restart
  4. در هر گره Cassandra در خوشه، ویژگی‌های نشان‌داده‌شده در زیر را به مقادیر جدید انبار کلید در فایل cassandra.properties به‌روز کنید:
    conf_cassandra_keystore=NEW_KEYSTORE_PATH
    conf_cassandra_keystore_password=NEW_KEYSTORE_PASSOWRD
    
      

    where NEW_KEYSTORE_PATH is the path to the directory where the keystore file is located and NEW_KEYSTORE_PASSWORD is the keystore password set when the certificates were created, as explained in the Appendix.

  5. Stop the Cassandra service:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra stop
  6. سرویس Cassandra را بازراه‌اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra start
  7. وقتی ارتباط بین همه گره‌ها باموفقیت برقرار شد، به گره Cassandra بعدی بروید. توجه: فقط درصورتی به گره بعدی بروید که ارتباط بین همه گره‌ها باموفقیت برقرار شده باشد.

ضمیمه

مثال زیر نحوه آماده کردن گواهینامه‌های سرور موردنیاز برای انجام مراحل رمزگذاری بین گرهی را توضیح می‌دهد. فرمان‌های نشان‌داده‌شده در مثال از پارامترهای زیر استفاده می‌کنند:

پارامتر شرح
node0 هر رشته یکتایی برای شناسایی گره.
keystore.node0 نام فروشگاه کلید. فرمان‌ها فرض می‌کنند که این فایل در دایرکتوری فعلی است.
keypass گذرواژه کلید باید برای هم کلیدفروشی و هم کلید یکسان باشد.
dname نشانی IP node0 را به‌عنوان 10.128.0.39 شناسایی می‌کند.
-validity مقدار تنظیم‌شده در این پرچم باعث می‌شود جفت کلید تولیدشده برای ۱۰ سال معتبر باشد.
  1. به فهرست راهنمای زیر بروید:
    cd /opt/apigee/data/apigee-cassandra
  2. برای تولید فایلی به نام 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 یکسان باشد.

  3. گواهینامه را به فایل جداگانه‌ای صادر کنید:
    keytool -export -alias node0 -file node0.cer \
    -keystore keystore.node0
  4. مطمئن شوید که فایل فقط توسط کاربر apigee قابل خواندن باشد و هیچ‌کس دیگری نتواند آن را بخواند:
    $ chown apigee:apigee \
    /opt/apigee/data/apigee-cassandra/keystore.node0
    $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
  5. گواهی تولیدشده node0.cer را به truststore گره وارد کنید:
    keytool -import -v -trustcacerts -alias node0 \
    -file node0.cer -keystore truststore.node0

    فرمان بالا از شما می‌خواهد گذرواژه تنظیم کنید. این گذرواژه truststore است و می‌تواند با گذرواژه keystore که قبلاً تنظیم کرده‌اید متفاوت باشد. اگر از شما خواسته شد به گواهی اعتماد کنید، yes را وارد کنید.

  6. از 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
  7. برای رمزگذاری گره به گره، فایل node0.cer را در هر گره کپی کنید و آن را به مخزن اعتماد هر گره وارد کنید.
    keytool -import -v -trustcacerts -alias node0 \
    -file node0.cer -keystore truststore.node1
  8. از keytool -list برای بررسی گواهینامه‌ها در فایل‌های keystore و truststore استفاده کنید:
    $ keytool -list -keystore keystore.node0
    $ keytool -list -keystore truststore.node0