使用 openssl (而非 keytool) 的 Cassandra 安全性

使用 openssl (而非 keytool) 的 Cassandra 安全性

我看到了 Cassandra 文档。http://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureSSLCertificates_t.html

我发现这一行“必须使用 keytool 生成 SSL 证书”。

但是我有自签名 CA(easy-rsa openSSL),它为我提供了证书和密钥。我想使用这些证书和密钥来实现 Cassandra 客户端到节点的安全,然后我必须使用 cqlsh 进行通信。为此,要求是密钥库、证书和密钥。我试过了,但无法实现这一点。

答案1

Cassandra 似乎使用“java 本机”存储数据库格式(密钥库)来保存加密密钥、证书和证书密钥。使用上面提到的工具管理此数据库非常容易。Oracle 文档页面有全面的文档https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html

对于您的具体情况,您需要遵循以下步骤。

1) 将您的 RootCA 证书导入到受信任的机构。

keytool -import -trustcacerts -alias rootCA -file rootCA.crt -keystore keystore.jks

2) 将密钥对导入存储数据库。使用 keytool 最简单的方法是转换为 pkcs12 格式,然后导入密钥库

openssl pkcs12 -export -in mycert.pem -inkey mykey.pem > mykey.p12

然后将此存储转换为 Java 密钥存储:

keytool -importkeystore -srcstoretype pkcs12 -srckeystore mykey.p12 -destkeystore mykeystore.jks 

我还可以推荐一些不错的 GUI 密钥库工具(用 Java 编写)http://www.keystore-explorer.org/如果你喜欢以图形方式管理

请注意,默认密钥库密码设置为“ changeit”。建议您更改它。

相关内容