Tính năng mã hoá giữa các nút (hoặc nút-nút) bảo vệ dữ liệu truyền giữa các nút trong một cụm bằng TLS. Trang này giải thích cách bật tính năng mã hoá giữa các nút Cassandra bằng TLS trên Edge cho Đám mây riêng tư. Để thực hiện các bước này, bạn phải nắm rõ thông tin chi tiết về vòng Cassandra.
Bật tính năng mã hoá giữa các nút Cassandra
Hãy làm theo các bước sau để bật tính năng mã hoá giữa các nút Cassandra:
Tạo chứng chỉ máy chủ bằng cách làm theo các bước trong Phụ lục để tạo khoá và chứng chỉ tự ký.
Các bước sau đây giả định rằng bạn đã tạo
keystore.node0vàtruststore.node0, cũng như mật khẩu kho khoá và kho tin cậy, như giải thích trong Phụ lục. Bạn nên tạo kho khoá và kho tin cậy làm các bước sơ bộ trên mỗi nút trước khi chuyển sang các bước tiếp theo.- Thêm các thuộc tính sau vào tệp
/opt/apigee/customer/application/cassandra.properties. Nếu tệp này không tồn tại, hãy tạo tệp đó.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 - Đảm bảo rằng tệp
cassandra.propertiesthuộc sở hữu của người dùng apigee:chown apigee:apigee \ /opt/apigee/customer/application/cassandra.properties
Thực hiện từng bước sau đây trên mỗi nút Cassandra để các thay đổi có hiệu lực mà không gây ra thời gian ngừng hoạt động cho người dùng:
- Dừng dịch vụ Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- Khởi động lại dịch vụ Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- Để xác định xem dịch vụ mã hoá TLS đã bắt đầu hay chưa, hãy kiểm tra nhật ký hệ thống để tìm thông báo sau:
Internode messaging enabled TLS protocols Internode messaging enabled cipher suites
Thay đổi định kỳ chứng chỉ
Để thay đổi định kỳ chứng chỉ, hãy làm theo các bước sau:
- Thêm chứng chỉ cho từng cặp khoá được tạo riêng biệt (xem Phụ lục) vào kho tin cậy của nút Cassandra hiện có, sao cho cả chứng chỉ cũ và chứng chỉ mới đều tồn tại trong cùng một kho tin cậy:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
trong đó
NEW_ALIASlà một chuỗi riêng biệt để xác định mục nhập,CERTlà tên của tệp chứng chỉ cần thêm vàEXISTING_TRUSTSTORElà tên của kho tin cậy hiện có trên nút Cassandra. - Sử dụng một tiện ích sao chép, chẳng hạn như scp, để phân phối kho tin cậy cho tất cả các nút Cassandra trong cụm, thay thế kho tin cậy hiện có đang được mỗi nút sử dụng.
- Thực hiện quá trình khởi động lại từng phần của cụm để tải kho tin cậy mới và thiết lập độ tin cậy cho các khoá mới trước khi các khoá này được áp dụng:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- Trên mỗi nút Cassandra trong cụm, hãy cập nhật các thuộc tính được trình bày bên dưới thành các giá trị kho khoá mới trong tệp cassandra.properties:
conf_cassandra_server_encryption_keystore=NEW_KEYSTORE_PATH conf_cassandra_server_encryption_keystore_password=NEW_KEYSTORE_PASSWORD
trong đó
NEW_KEYSTORE_PATHlà đường dẫn đến thư mục chứa tệp kho khoá vàNEW_KEYSTORE_PASSWORDlà mật khẩu kho khoá được đặt khi tạo chứng chỉ, như giải thích trong Phụ lục. - Dừng dịch vụ Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- Khởi động lại dịch vụ Cassandra:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- Khi thiết lập thành công quá trình giao tiếp giữa tất cả các nút, hãy chuyển sang nút Cassandra tiếp theo. Lưu ý: Chỉ chuyển sang nút tiếp theo nếu thiết lập thành công quá trình giao tiếp giữa tất cả các nút.
Phụ lục
Ví dụ sau đây giải thích cách chuẩn bị các chứng chỉ máy chủ cần thiết để thực hiện các bước mã hoá giữa các nút. Các lệnh được trình bày trong ví dụ sử dụng các tham số sau:
| Tham số | Mô tả |
|---|---|
node0 |
Bất kỳ chuỗi riêng biệt nào để xác định nút. |
keystore.node0 |
Tên kho khoá. Các lệnh giả định rằng tệp này nằm trong thư mục hiện tại. |
keypass |
Keypass phải giống nhau cho cả kho khoá và khoá. |
dname |
Xác định địa chỉ IP của node0 là 10.128.0.39. |
-validity |
Giá trị được đặt trên cờ này giúp cặp khoá được tạo có hiệu lực trong 10 năm. |
- Chuyển đến thư mục sau:
cd /opt/apigee/data/apigee-cassandra
- Chạy lệnh sau để tạo một tệp có tên là
keystore.node0trong thư mục hiện tại: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"
Quan trọng: Đảm bảo rằng mật khẩu khoá giống với mật khẩu kho khoá.
- Xuất chứng chỉ sang một tệp riêng:
keytool -export -alias node0 -file node0.cer \ -keystore keystore.node0
- Đảm bảo rằng chỉ người dùng apigee mới có thể đọc tệp này và không ai khác có thể đọc tệp này:
$ chown apigee:apigee \ /opt/apigee/data/apigee-cassandra/keystore.node0 $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
- Nhập chứng chỉ
node0.cerđã tạo vào kho tin cậy của nút:keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node0
Lệnh trên yêu cầu bạn đặt mật khẩu. Đây là mật khẩu kho tin cậy và có thể khác với mật khẩu kho khoá mà bạn đã đặt trước đó. Nếu được nhắc tin tưởng chứng chỉ, hãy nhập
yes. - Sử dụng openssl để tạo tệp PEM của chứng chỉ mà không có khoá. Xin lưu ý rằng
cqlshkhông hoạt động với chứng chỉ ở định dạng đã tạo.$ 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
- Đối với tính năng mã hoá giữa các nút, hãy sao chép tệp
node0.cervào từng nút và nhập tệp đó vào kho tin cậy của từng nút.keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node1
- Sử dụng
keytool -listđể kiểm tra chứng chỉ trong các tệp kho khoá và kho tin cậy:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0