推荐答案
在 Cassandra 中配置 SSL/TLS 加密可以通过以下步骤完成:
生成证书和密钥:
- 使用
keytool
或openssl
生成服务器的密钥对和证书。 - 生成客户端的密钥对和证书(如果需要双向认证)。
- 使用
配置
cassandra.yaml
文件:- 在
cassandra.yaml
文件中,找到server_encryption_options
和client_encryption_options
部分。 - 设置
internode_encryption
为all
或dc
以启用节点间的加密通信。 - 配置
keystore
和truststore
的路径及密码。
- 在
配置客户端加密:
- 在
cassandra.yaml
文件中,设置client_encryption_options
部分。 - 启用
enabled: true
并配置keystore
和truststore
的路径及密码。
- 在
重启 Cassandra 服务:
- 完成配置后,重启 Cassandra 服务以使更改生效。
本题详细解读
1. 生成证书和密钥
在配置 SSL/TLS 加密之前,首先需要生成服务器和客户端的证书和密钥。可以使用 keytool
(Java 自带的工具)或 openssl
来生成这些文件。
生成服务器证书:
keytool -genkeypair -alias cassandra -keyalg RSA -keysize 2048 -validity 365 -keystore cassandra.keystore
这将生成一个名为
cassandra.keystore
的密钥库文件。生成客户端证书(如果需要双向认证):
keytool -genkeypair -alias client -keyalg RSA -keysize 2048 -validity 365 -keystore client.keystore
2. 配置 cassandra.yaml
文件
在 cassandra.yaml
文件中,找到 server_encryption_options
和 client_encryption_options
部分,并进行如下配置:
节点间加密:
server_encryption_options: internode_encryption: all keystore: /path/to/cassandra.keystore keystore_password: your_keystore_password truststore: /path/to/cassandra.truststore truststore_password: your_truststore_password
客户端加密:
client_encryption_options: enabled: true keystore: /path/to/cassandra.keystore keystore_password: your_keystore_password truststore: /path/to/cassandra.truststore truststore_password: your_truststore_password
3. 配置客户端加密
如果需要对客户端连接进行加密,确保在 client_encryption_options
部分启用了加密,并正确配置了 keystore
和 truststore
的路径及密码。
4. 重启 Cassandra 服务
完成上述配置后,重启 Cassandra 服务以使更改生效:
sudo service cassandra restart
通过以上步骤,Cassandra 将启用 SSL/TLS 加密,确保数据在传输过程中的安全性。