我看到了Cassandra文档。 http://docs.datastax.com/en/cassandra/2.1/cassandra/security/secureSSLCertificates_t.html
我发现这行“SSL证书必须使用keytool生成”。
但是我有我的自签名CA(easy-rsa openSSL),即给我证书和密钥。 我想使用这些证书和Cassandra客户端的密钥来节点安全,然后我必须使用cqlsh进行通信。 为此,需求是密钥库,证书和密钥。 我尝试过,但我无法做到这一点。
看起来Cassandra使用“java原生”存储数据库格式(密钥库)来保存encryption密钥,证书和证书密钥。 用上面提到的工具来pipe理这个数据库是相当容易的。 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
我也可以build议很好的GUI密钥库工具(用java编写) http://www.keystore-explorer.org/如果你喜欢用graphics方式pipe理它
请注意,默认密钥库密码设置为“ changeit ”。 鼓励你改变它。