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 için Edge'de TLS kullanılarak Cassandra düğümler arası şifrelemenin nasıl etkinleştirileceği açıklanmaktadır. Bu adımları gerçekleştirmek için Cassandra halkanızı ayrıntılarıyla bilmeniz gerekir.
Cassandra düğümler arası şifrelemeyi etkinleştirme
Cassandra internode şifrelemesini etkinleştirmek için şu adımları uygulayın:
Ek'te yer alan adımları uygulayarak sunucu sertifikaları oluşturun. kullanarak kendinden imzalı bir anahtar ve sertifika oluşturun.
FIPS özellikli bir işletim sisteminde Edge for Private Cloud kullanıyorsanız BouncyCastle FIPS Anahtar Deposu (BCFKS) kullanın. BCFKS türü anahtar deposuyla çalışmayla ilgili ipuçları için aşağıdaki Ek'e bakın.
Aşağıdaki adımlarda, Ek'te açıklandığı gibi
keystore.node0
vetruststore.node0
öğelerinin yanı sıra anahtar deposu ve güven deposu şifrelerini oluşturduğunuz varsayılmaktadır. Sonraki adımlara geçmeden önce her düğümde ön adımlar olarak anahtar deposu ve güven deposu oluşturulmalıdır./opt/apigee/customer/application/cassandra.properties
dosyası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=true # Set the following in FIPS enabled operating systems # With FIPS, older TLS protocols are disabled, so set to TLSv1.2 conf_cassandra_server_encryption_protocol=TLSv1.2 # With FIPS, use BCFKS keystores conf_cassandra_server_encryption_store_type=BCFKS
cassandra.properties
dosyasının, Apigee kullanıcısına ait olduğundan emin olun:chown apigee:apigee \ /opt/apigee/customer/application/cassandra.properties
Aşağıdaki adımları her bir Cassandra düğümünde birer birer uygulayın. Böylece, değişiklikler kullanıcılar için kapalı kalma süresi olmadan geçerlilik kazanır:
- 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üklerinde aşağıdaki mesajı arayın:
Internode messaging enabled TLS protocols Internode messaging enabled cipher suites
Sertifika rotasyonu gerçekleştirme
Sertifikaları döndürmek için aşağıdaki adımları uygulayın:
- Oluşturulan her benzersiz anahtar çiftinin sertifikasını (Ek'e bakın) mevcut bir Cassandra düğümünün güven deposuna ekleyin. Böylece hem eski sertifikalar hem de yeni sertifikalar aynı güven deposunda bulunur:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
Burada
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 mağazasını kümedeki tüm Cassandra düğümlerine dağıtmak için scp gibi bir kopyalama yardımcı programı kullanın. Bu işlem, her düğüm tarafından kullanılan mevcut güven mağazasını değiştirir.
- Yeni güven deposunu yüklemek ve yeni anahtarlar kullanılmadan önce güven tesis etmek için kümeyi periyodik olarak yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- Kümedeki her Cassandra düğümünde, aşağıda gösterilen özellikleri cassandra.properties dosyasında 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_PASSWORD
ise Ek bölümünde 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 başarılı bir şekilde iletişim kurulduktan sonra bir sonraki Cassandra düğümüne geçin. Not: Yalnızca tüm düğümler arasında başarıyla iletişim kurulursa sonraki düğüme geçin.
Ek
Aşağıdaki örnekte, adımları uygulayın. Örnekte gösterilen komutlar aşağıdaki parametreleri kullanır:
Parametre | Açıklama |
---|---|
node0 |
Nodu tanımlayan benzersiz bir dize. |
keystore.node0 |
Anahtar mağazası adı. Komutlarda, bu dosyanın geçerli dizinde olduğu varsayılır. |
keypass |
Tuş 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. |
- Aşağıdaki dizine gidin:
cd /opt/apigee/data/apigee-cassandra
- 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 mağazası ş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 okunabilir olduğundan emin olun:
$ chown apigee:apigee \ /opt/apigee/data/apigee-cassandra/keystore.node0 $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
- 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. - 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
- Düğümler arası şifreleme için
node0.cer
dosyası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 -list
komutunu kullanın:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0
FIPS özellikli işletim sistemleri için BCFKS anahtar depolarıyla çalışma
FIPS özellikli işletim sistemleriyle çalışırken BouncyCastle FIPS Anahtar Depoları'nı (BCFKS) kullanın. Aşağıdaki bölümde, BCFKS türü anahtar depolarıyla nasıl çalışacağınız açıklanmaktadır. Anahtar depolarıyla çalışmak için diğer adımlar (ör. dosya sahipliği, dosya konumu vb.) bu ekte belirtilen şekilde kalır.
BCFKS türündeki bir anahtar mağazası oluşturmak için aşağıdaki komutu kullanın:
keytool -genkeypair -keyalg RSA -alias node0 -validity 365 -keystore keystore.node0 \ -storepass keypass -keypass keypass -v \ -dname "EMAILADDRESS=youremail@domain.com, CN=yourcn, OU=yourou, O=youro, L=yourl, C=yourc" \ -storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS
Not: Anahtar deposu şifresi ve anahtar şifresi aynı olmalıdır.
Not: Apigee tarafından gönderilen bc-fips
jar dosyası kullanılabilir veya aynı jar dosyası BouncyCastle'ın depolarından indirilebilir. BCFKS anahtar deposu oluşturma hakkında daha fazla bilgi için BouncyCastle'ın dokümanlarına bakın.
Sertifikayı ayrı bir dosyaya aktarın:
keytool -export -v -alias node0 -file node0.cer -keystore keystore.node0 -storepass keypass \ -storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS
Oluşturulan node0.cer
sertifikasını düğümün güven deposuna aktarın:
keytool -import -v -alias node0 -file node0.cer -keystore truststore.node0 -storepass storepass \ -storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS