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

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

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

برای فعال کردن رمزگذاری میانگره کاساندرا، رویه زیر را در تمام گره‌های خوشه دنبال کنید. شما باید گواهینامه های عمومی هر گره را به همه گره ها توزیع کنید. پس از انجام این کار، هر گره دارای گواهینامه های node0.cer ، node1.cer و غیره در Truststore خود خواهد بود. هر گره فقط حاوی کلید خصوصی خود در فروشگاه کلید خود خواهد بود. برای مثال، node0 فقط حاوی node0.pem در فروشگاه کلید خود خواهد بود. شما باید رمزگذاری را در هر گره، یکی یکی فعال کنید.

برای فعال کردن رمزگذاری میانگره 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. سرویس کاساندرا را متوقف کنید:
    /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. گواهی را برای هر جفت کلید تولید شده منحصربفرد (به ضمیمه مراجعه کنید) به یک انبار اعتماد گره کاساندرا اضافه کنید، به طوری که گواهی های قدیمی و گواهی های جدید در یک Truststore وجود داشته باشند:
    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 در خوشه، ویژگی های نشان داده شده در زیر را به مقادیر جدید keystore در فایل 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. هنگامی که ارتباط بین همه گره ها با موفقیت برقرار شد، به گره کاساندرا بعدی بروید. توجه: فقط در صورتی به گره بعدی بروید که ارتباط بین همه گره ها با موفقیت برقرار شود.

ضمیمه

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

پارامتر شرح
node0 هر رشته منحصر به فرد برای شناسایی گره.
keystore.node0 یک نام فروشگاه کلید. دستورات فرض می کنند که این فایل در دایرکتوری فعلی است.
keypass پاس کلید باید هم برای keystore و هم برای key یکسان باشد.
dname آدرس IP node0 را 10.128.0.39 شناسایی می کند.
-validity مقدار تنظیم شده روی این پرچم باعث می شود جفت کلید تولید شده به مدت 10 سال معتبر باشد.
  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 را در هر گره کپی کنید و آن را به Truststore هر گره وارد کنید.
    keytool -import -v -trustcacerts -alias node0 \
    -file node0.cer -keystore truststore.node1
  8. از keytool -list برای بررسی گواهی‌ها در فایل‌های ذخیره کلید و Truststore استفاده کنید:
    $ keytool -list -keystore keystore.node0
    $ keytool -list -keystore truststore.node0