Düğümler arası (veya düğümden düğüme) şifreleme, bir kümedeki düğümler arasında aktarılan verileri TLS kullanarak korur. Bu sayfada, Edge for Private Cloud'da TLS kullanarak Cassandra düğümler arası şifrelemenin nasıl etkinleştirileceği açıklanmaktadır. Bu adımları uygulamak için Cassandra halkasının ayrıntılarını bilmeniz gerekir.
Cassandra düğümler arası şifrelemeyi etkinleştirme
Cassandra düğümler arası şifrelemeyi etkinleştirmek için aşağıdaki adımları uygulayın:
Kendi kendine imzalanmış bir anahtar ve sertifika oluşturmak için Ek bölümündeki adımları uygulayarak sunucu sertifikaları oluşturun.
Aşağıdaki adımlarda, Ek bölümünde açıklandığı şekilde
keystore.node0vetruststore.node0ile anahtar deposu ve güven deposu şifrelerini oluşturduğunuz varsayılmaktadır. Sonraki adımlara geçmeden önce her düğümde ön adım olarak anahtar deposu ve güven deposu oluşturulmalıdır./opt/apigee/customer/application/cassandra.propertiesdosyasına aşağıdaki özellikleri ekleyin. Dosya yoksa oluşturun.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=truecassandra.propertiesdosyasının apigee kullanıcısına ait olduğundan emin olun:chown apigee:apigee \ /opt/apigee/customer/application/cassandra.properties
Değişikliklerin kullanıcılar için herhangi bir kapalı kalma süresine neden olmadan geçerli olması amacıyla her Cassandra düğümünde aşağıdaki adımları tek tek uygulayın:
- Cassandra hizmetini durdurun:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- Cassandra hizmetini yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- TLS şifreleme hizmetinin başlatılıp başlatılmadığını belirlemek için sistem günlüğünde aşağıdaki mesajı kontrol edin:
Internode messaging enabled TLS protocols Internode messaging enabled cipher suites
Sertifika rotasyonu gerçekleştirme
Sertifikaları rotasyona tabi tutmak için aşağıdaki adımları uygulayın:
- Oluşturulan her benzersiz anahtar çifti için sertifikayı (bkz. Ek) mevcut bir Cassandra düğümünün güvenli anahtar deposuna ekleyin. Böylece hem eski hem de yeni sertifikalar aynı güvenli anahtar deposunda yer alır:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
NEW_ALIAS, girişi tanımlayan benzersiz bir dize,CERT, eklenecek sertifika dosyasının adı veEXISTING_TRUSTSTORE, Cassandra düğümündeki mevcut güven deposunun adıdır. - Güven deposunu kümedeki tüm Cassandra düğümlerine dağıtmak için scp gibi bir kopyalama yardımcı programı kullanın ve her düğüm tarafından kullanılan mevcut güven deposunu değiştirin.
- Yeni güven deposunu yüklemek ve yeni anahtarlar yerleştirilmeden önce güven oluşturmak için kümenin kademeli olarak yeniden başlatılmasını sağlayın:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- Kümedeki her Cassandra düğümünde, cassandra.properties dosyasında aşağıda gösterilen özellikleri yeni anahtar deposu değerleriyle güncelleyin:
conf_cassandra_server_encryption_keystore=NEW_KEYSTORE_PATH conf_cassandra_server_encryption_keystore_password=NEW_KEYSTORE_PASSWORD
Burada
NEW_KEYSTORE_PATH, anahtar deposu dosyasının bulunduğu dizinin yolu,NEW_KEYSTORE_PASSWORDise Ek'te açıklandığı gibi sertifikalar oluşturulurken ayarlanan anahtar deposu şifresidir. - Cassandra hizmetini durdurun:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- Cassandra hizmetini yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- Tüm düğümler arasında iletişim başarıyla kurulduğunda bir sonraki Cassandra düğümüne geçin. Not: Yalnızca tüm düğümler arasında iletişim başarıyla kurulduysa bir sonraki düğüme geçin.
Ek
Aşağıdaki örnekte, düğümler arası şifreleme adımlarını gerçekleştirmek için gereken sunucu sertifikalarının nasıl hazırlanacağı açıklanmaktadır. Örnekte gösterilen komutlar aşağıdaki parametreleri kullanır:
| Parametre | Açıklama |
|---|---|
node0 |
Düğümü tanımlayan benzersiz bir dize. |
keystore.node0 |
Bir anahtar deposu adı. Komutlar, bu dosyanın geçerli dizinde olduğunu varsayar. |
keypass |
Anahtar deposu ve anahtar için aynı anahtar şifresi kullanılmalıdır. |
dname |
node0 IP adresini 10.128.0.39 olarak tanımlar. |
-validity |
Bu işaret için ayarlanan değer, oluşturulan anahtar çiftini 10 yıl boyunca geçerli kılar. |
- Aşağıdaki dizine gidin:
cd /opt/apigee/data/apigee-cassandra
- Geçerli dizinde
keystore.node0adlı 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.
- Sertifikayı ayrı bir dosyaya aktarın:
keytool -export -alias node0 -file node0.cer \ -keystore keystore.node0
- Dosyanın yalnızca apigee kullanıcısı tarafından okunabildiğinden ve başka hiç kimse tarafından okunamadığından emin olun:
$ chown apigee:apigee \ /opt/apigee/data/apigee-cassandra/keystore.node0 $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
- Oluşturulan sertifikayı (
node0.cer) düğümün güven deposuna aktarın:keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node0
Yukarıdaki komut sizden bir şifre belirlemenizi ister. Bu, güvenilir depo şifresidir ve daha önce belirlediğiniz anahtar deposu şifresinden farklı olabilir. Sertifikaya güvenmeniz istenirse
yesyazın. - Anahtar içermeyen bir sertifika PEM dosyası oluşturmak için openssl'yi kullanı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
- Düğümler arası şifreleme için
node0.cerdosyasını her düğüme kopyalayın ve her düğümün güven deposuna aktarın.keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node1
- Anahtar deposu ve güven deposu dosyalarındaki sertifikaları kontrol etmek için
keytool -listaracını kullanın:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0