Phương thức mã hoá nút (hoặc từ nút đến nút) bảo vệ việc truyền dữ liệu 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á nút bên trong 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 làm quen với các thông tin chi tiết về Cassandra chuông.
Bật tính năng mã hoá nút bên trong Cassandra
Để bật tính năng mã hoá nút trong Cassandra, hãy làm theo quy trình dưới đây đối với tất cả các nút trong
cụm. Bạn cần phân phối chứng chỉ công khai của từng nút cho tất cả các nút.
Sau khi thực hiện việc này, mỗi nút sẽ chứa các chứng chỉ
node0.cer
, node1.cer
, v.v. trong kho tin cậy của nó. Mỗi nút sẽ chỉ
có chứa khoá riêng tư trong
kho khoá. Ví dụ: node0
sẽ chỉ chứa node0.pem
trong
kho khoá. Bạn cần bật tính năng mã hoá trên từng nút, mỗi nút.
Làm theo các bước sau để bật tính năng mã hoá nút nội dung 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 một khoá tự ký và chứng chỉ.
Các bước sau đây giả định rằng bạn đã tạo
keystore.node0
vàtruststore.node0
, cũng như mật khẩu kho khoá và mật khẩu Truststore, như được giải thích trong Phụ lục. Kho khoá và kho tin cậy phải được tạo làm các bước sơ bộ trên mỗi nút trước khi tiếp tục với các bước tiếp theo.- Thêm các thuộc tính sau vào
/opt/apigee/customer/application/cassandra.properties
. Nếu tệp không tồn tại, hãy tạo tệp đó.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
- Đảm bảo rằng tệp
cassandra.properties
thuộc sở hữu của người dùng API:chown apigee:apigee \ /opt/apigee/customer/application/cassandra.properties
Thực thi từng bước sau trên từng nút Cassandra để các thay đổi có hiệu lực mà không khiến người dùng ngừng hoạt độ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:
Starting Encrypted Messaging Service on TLS port
Thực hiện xoay vòng chứng chỉ
Để xoay vòng chứng chỉ, hãy làm theo các bước sau:
- Thêm chứng chỉ cho từng cặp khoá duy nhất được tạo (xem Phụ lục)
đến một Cassandra hiện có
kho lưu trữ tin cậy của nút, để 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_ALIAS
là một chuỗi duy nhất để xác định mục nhập,CERT
là tên của chứng chỉ tệp cần thêm vàEXISTING_TRUSTSTORE
là 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.
- Tiến hành khởi động lại cụm đồng hồ để tải kho tin cậy mới và thiết lập độ tin cậy cho
trước khi chúng có sẵn:
/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 hiển thị bên dưới thành kho khoá mới
trong tệp cassandra.properties:
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 andNEW_KEYSTORE_PASSWORD
is the keystore password set when the certificates were created, as explained in the Appendix. - Stop the Cassandra service:
/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 xong thông tin liên lạc giữa tất cả các nút, hãy chuyển đến nút tiếp theo Nút Cassandra. Lưu ý: Chỉ chuyển sang nút tiếp theo nếu giao tiếp thành công được thiết lậ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ị chứng chỉ máy chủ cần thiết để thực hiện các bước mã hoá nội nút. Các lệnh được hiển thị trong ví dụ này sử dụng các tham số sau:
Thông số | Mô tả |
---|---|
node0 |
Bất kỳ chuỗi duy nhất nào để xác định nút. |
keystore.node0 |
Tên kho khoá. Các lệnh giả định tệp này nằm trong thư mục hiện tại. |
keypass |
Khoá truy cập 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 tệp có tên
keystore.node0
trong 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"
Lưu ý quan trọng: Hãy đả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 biệt:
keytool -export -alias node0 -file node0.cer \ -keystore keystore.node0
- Đảm bảo chỉ người dùng API mới có thể đọc tệp và không ai khác có thể đọc được:
$ chown apigee:apigee \ /opt/apigee/data/apigee-cassandra/keystore.node0 $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0
- Nhập chứng chỉ đã tạo
node0.cer
vào kho lưu trữ 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ỉ, nhập
yes
. - Sử dụng openssl để tạo tệp PEM của chứng chỉ không có khóa. Lưu ý rằng
cqlsh
khô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
- Để mã hoá từ nút đến nút, hãy sao chép tệp
node0.cer
vào từng nút rồi nhập tệp đó vào kho tin cậy của mỗi nút.keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node1
- Sử dụng
keytool -list
để kiểm tra các chứng chỉ trong tệp kho khoá và tệp Truststore:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0