Cassandra ile birlikte düğüm şifrelemesini etkinleştir

Düğüm arası (veya düğümden düğüme) şifreleme, bir kümedeki düğümler arasında seyahat eden verileri korur. daha hızlı teslim edilmesine yardımcı olur. Bu sayfada, Private Cloud'a gidin. Bu adımları uygulamak için Cassandra'nızın ayrıntılarını bilmeniz gerekir. zili çaldır.

Cassandra düğümler arası şifrelemeyi etkinleştir

Cassandra internode şifrelemesini etkinleştirmek için kümesidir. Her düğümün ortak sertifikalarını tüm düğümlere dağıtmanız gerekir. Bu işlemin ardından her düğüm, sertifika ve güven deposunda node0.cer, node1.cer vb. Her bir düğüm yalnızca kendi özel anahtarını içermelidir. anahtar deposuna gidin. Örneğin, node0 etiketi yalnızca node0.pem değerini anahtar deposuna gidin. Her düğümde, her seferinde bir tane olmak üzere şifrelemeyi etkinleştirmeniz gerekir.

Cassandra internode şifrelemesini etkinleştirmek için şu adımları uygulayın:

  1. Ek'te yer alan adımları uygulayarak sunucu sertifikaları oluşturun. kendinden imzalı anahtar oluşturmak için ve sertifika.

    Aşağıdaki adımlarda, keystore.node0 oluşturduğunuz varsayılır ve truststore.node0, Ayrıca, Ek'te açıklandığı şekilde anahtar deposu ve güven deposu şifrelerini de içerir. Devam etmeden önce her düğümde ön adım olarak anahtar deposu ve güven deposu oluşturulmalıdır. adımlarla devam edin.

  2. /opt/apigee/customer/application/cassandra.properties alanına aşağıdaki özellikleri ekleyin dosyası olarak kaydedebilirsiniz. Dosya yoksa, oluşturun.
    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 dosyasının, Apigee kullanıcısına ait olduğundan emin olun:
    chown apigee:apigee \
    /opt/apigee/customer/application/cassandra.properties

Değişikliklerin geçerli olması için aşağıdaki adımları her bir Cassandra düğümünde tek tek yürütün hem de kullanıcılar için kapalı kalma süresi olmadan:

  1. Cassandra hizmetini durdurun:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra stop
  2. Cassandra hizmetini yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra start
  3. TLS şifreleme hizmetinin başlayıp başlamadığını belirlemek için sistem günlüklerinde aşağıdaki iletinin olup olmadığını kontrol edin:
    Starting Encrypted Messaging Service on TLS port

Sertifika rotasyonu gerçekleştirme

Sertifikaları değiştirmek için şu adımları izleyin:

  1. Oluşturulan her benzersiz anahtar çifti için sertifikayı ekleyin (Ek'e bakın) mevcut bir Cassandra'ya hem eski hem de yeni sertifikalar aynı güven deposu:
    keytool -import -v -trustcacerts -alias NEW_ALIAS \
    -file CERT -keystore EXISTING_TRUSTSTORE

    Burada NEW_ALIAS, girişi tanımlamak için benzersiz bir dizedir, CERT ise sertifikanın adı dosya ve EXISTING_TRUSTSTORE Cassandra düğümündeki mevcut güven deposunun adıdır.

  2. Truststore'u kümedeki tüm Cassandra düğümlerine dağıtmak için scp gibi bir kopyalama yardımcı programı kullanın her düğüm tarafından kullanılan mevcut güven deposunu değiştirin.
  3. Yeni güven deposunu yüklemek ve yeni anahtarları takmadan önce aşağıdaki adımları uygulayın:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra restart
  4. Kümedeki her Cassandra düğümünde aşağıda gösterilen özellikleri yeni anahtar deposuyla güncelleyin cassandra.properties dosyasındaki değerler:
    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 hizmetini yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service \
    apigee-cassandra start
  7. Tüm düğümler arasında başarıyla iletişim kurulduktan sonra Cassandra düğümü. Not: Yalnızca iletişim başarılı olursa bir sonraki düğüme geçebilirsiniz dört dörtlük bir yoldur.

Ek

Aşağıdaki örnekte, adımları uygulayın. Örnekte gösterilen komutlar aşağıdaki parametreleri kullanır:

Parametre Açıklama
node0 Düğümü tanımlayan benzersiz bir dize.
keystore.node0 Anahtar deposu adı. Komutlarda bu dosyanın mevcut dizinde olduğu varsayılır.
keypass Anahtar geçişi, hem anahtar deposu hem de anahtar için aynı olmalıdır.
dname node0 IP adresini 10.128.0.39 olarak tanımlar.
-validity Bu işarette ayarlanan değer, oluşturulan anahtar çiftini 10 yıl geçerli hale getirir.
  1. Aşağıdaki dizine gidin:
    cd /opt/apigee/data/apigee-cassandra
  2. Geçerli dizinde keystore.node0 adlı bir dosya oluşturmak için aşağıdaki komutu çalıştırın:
    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"

    Önemli: Anahtar şifresinin, anahtar deposu şifresiyle aynı olduğundan emin olun.

  3. Sertifikayı ayrı bir dosyaya aktarın:
    keytool -export -alias node0 -file node0.cer \
    -keystore keystore.node0
  4. Dosyanın yalnızca Apigee kullanıcısı tarafından ve başka hiç kimse tarafından okunabildiğinden emin olun:
    $ chown apigee:apigee \
    /opt/apigee/data/apigee-cassandra/keystore.node0
    $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
  5. Oluşturulan node0.cer sertifikasını düğümün güven deposuna aktarın:
    keytool -import -v -trustcacerts -alias node0 \
    -file node0.cer -keystore truststore.node0

    Yukarıdaki komut bir şifre ayarlamanızı ister. Bu, Trustedstore şifresidir ve daha önce belirlediğiniz anahtar deposu şifresinden farklı olmalıdır. Sertifikaya güvenmeniz istenirse yes girin.

  6. Sertifikanın PEM dosyasını anahtar olmadan oluşturmak için opensl'yi kullanın. Unutmayın: cqlsh oluşturulan biçimdeki sertifikayla çalışmaz.
    $ 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. Düğümden düğüme şifreleme için node0.cer dosyasını her düğüme kopyalayıp içe aktarın güven deposuna gönderir.
    keytool -import -v -trustcacerts -alias node0 \
    -file node0.cer -keystore truststore.node1
  8. Anahtar deposu ve güven deposu dosyalarındaki sertifikaları kontrol etmek için keytool -list komutunu kullanın:
    $ keytool -list -keystore keystore.node0
    $ keytool -list -keystore truststore.node0