Enkripsi antarnode (atau node-ke-node) melindungi data yang berpindah antar-node dalam cluster menggunakan TLS. Halaman ini menjelaskan cara mengaktifkan enkripsi antar-node Cassandra menggunakan TLS di Edge untuk Private Cloud. Untuk melakukan langkah-langkah ini, Anda harus memahami detail ring Cassandra Anda.
Mengaktifkan enkripsi internode Cassandra
Ikuti langkah-langkah berikut untuk mengaktifkan enkripsi antar-node Cassandra:
Buat sertifikat server dengan mengikuti langkah-langkah di Lampiran untuk membuat kunci dan sertifikat yang ditandatangani sendiri.
Langkah-langkah berikut mengasumsikan bahwa Anda telah membuat
keystore.node0dantruststore.node0, serta sandi keystore dan truststore, seperti yang dijelaskan dalam Lampiran. Keystore dan truststore harus dibuat sebagai langkah awal di setiap node sebelum melanjutkan ke langkah berikutnya.- Tambahkan properti berikut ke file
/opt/apigee/customer/application/cassandra.properties. Jika file tidak ada, buat file tersebut.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 - Pastikan file
cassandra.propertiesdimiliki oleh pengguna Apigee:chown apigee:apigee \ /opt/apigee/customer/application/cassandra.properties
Jalankan langkah-langkah berikut di setiap node Cassandra, satu per satu, sehingga perubahan diterapkan tanpa menyebabkan periode nonaktif bagi pengguna:
- Hentikan layanan Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- Mulai ulang layanan Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- Untuk menentukan apakah layanan enkripsi TLS telah dimulai, periksa log sistem untuk menemukan pesan berikut:
Internode messaging enabled TLS protocols Internode messaging enabled cipher suites
Melakukan rotasi sertifikat
Untuk mengganti sertifikat, ikuti langkah-langkah berikut:
- Tambahkan sertifikat untuk setiap pasangan kunci yang dibuat secara unik (lihat Lampiran) ke truststore node Cassandra yang ada, sehingga sertifikat lama dan sertifikat baru ada di truststore yang sama:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
dengan
NEW_ALIASadalah string unik untuk mengidentifikasi entri,CERTadalah nama file sertifikat yang akan ditambahkan, danEXISTING_TRUSTSTOREadalah nama truststore yang ada di node Cassandra. - Gunakan utilitas salin, seperti scp, untuk mendistribusikan truststore ke semua node Cassandra di cluster, menggantikan truststore yang ada yang digunakan oleh setiap node.
- Lakukan mulai ulang berkelanjutan pada cluster untuk memuat truststore baru dan membangun kepercayaan untuk kunci baru sebelum kunci tersebut diterapkan:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- Pada setiap node Cassandra dalam cluster, perbarui properti yang ditampilkan di bawah ke nilai keystore baru dalam file cassandra.properties:
conf_cassandra_server_encryption_keystore=NEW_KEYSTORE_PATH conf_cassandra_server_encryption_keystore_password=NEW_KEYSTORE_PASSWORD
dengan
NEW_KEYSTORE_PATHsebagai jalur ke direktori tempat file keystore berada danNEW_KEYSTORE_PASSWORDsebagai sandi keystore yang ditetapkan saat sertifikat dibuat, seperti yang dijelaskan dalam Lampiran. - Hentikan layanan Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- Mulai ulang layanan Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- Setelah komunikasi berhasil dilakukan di antara semua node, lanjutkan ke node Cassandra berikutnya. Catatan: Lanjutkan ke node berikutnya hanya jika komunikasi berhasil dilakukan di antara semua node.
Lampiran
Contoh berikut menjelaskan cara menyiapkan sertifikat server yang diperlukan untuk melakukan langkah-langkah enkripsi antar-node. Perintah yang ditampilkan dalam contoh menggunakan parameter berikut:
| Parameter | Deskripsi |
|---|---|
node0 |
String unik apa pun untuk mengidentifikasi node. |
keystore.node0 |
Nama keystore. Perintah mengasumsikan bahwa file ini ada di direktori saat ini. |
keypass |
Keypass harus sama untuk keystore dan kunci. |
dname |
Mengidentifikasi alamat IP node0 sebagai 10.128.0.39. |
-validity |
Nilai yang ditetapkan pada tanda ini membuat pasangan kunci yang dihasilkan valid selama 10 tahun. |
- Buka direktori berikut:
cd /opt/apigee/data/apigee-cassandra
- Jalankan perintah berikut untuk membuat file bernama
keystore.node0di direktori saat ini: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"
Penting: Pastikan sandi kunci sama dengan sandi keystore.
- Ekspor sertifikat ke file terpisah:
keytool -export -alias node0 -file node0.cer \ -keystore keystore.node0
- Pastikan file hanya dapat dibaca oleh pengguna Apigee dan tidak dapat dibaca oleh orang lain:
$ chown apigee:apigee \ /opt/apigee/data/apigee-cassandra/keystore.node0 $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
- Impor sertifikat yang dihasilkan
node0.cerke truststore node:keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node0
Perintah di atas meminta Anda untuk menetapkan sandi. Ini adalah sandi truststore dan dapat berbeda dengan sandi keystore yang Anda tetapkan sebelumnya. Jika diminta untuk memercayai sertifikat, masukkan
yes. - Gunakan openssl untuk membuat file PEM sertifikat tanpa kunci. Perhatikan bahwa
cqlshtidak berfungsi dengan sertifikat dalam format yang dihasilkan.$ 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
- Untuk enkripsi node-ke-node, salin file
node0.cerke setiap node dan impor ke truststore setiap node.keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node1
- Gunakan
keytool -listuntuk memeriksa sertifikat di file keystore dan truststore:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0