我正在使用datastax cassandra版本3.6.0,并尝试使用ssl连接到cassandra。我已经在dir中存储了ca证书 "/etc/ssl/certs/cassandra.crt"
.
我在java中创建了一个cassandra集群:
cluster = Cluster.builder().addContactPoints(hostArray).withPort(Integer.parseInt(port)).withCredentials(username, password).build();
我确实看到一个 withSSL(SSLOptions)
在构建器中,如何使用上面的cert文件在java中创建ssloptions,以便使用它创建集群?
在python中,我有
ssl_opts = {"ca_certs": "/etc/ssl/certs/cassandra.crt"}
auth_provider = PlainTextAuthProvider( username , password )
cluster = Cluster(
cluster_ips,
auth_provider=auth_provider,
port=20102,
ssl_options=ssl_opts,
load_balancing_policy=DCAwareRoundRobinPolicy()
)
如何使用crt文件在java中创建集群?
2条答案
按热度按时间mgdq6dx11#
您需要先创建sslcontext。要创建sslcontext,可以参考这里的示例sslcontext example。一旦你有了sslconext对象,你可以得到如下的ssloptions
然后您可以将此选项作为
tkqqtvp12#
在JavaDriverV3.6中,可以使用
RemoteEndpointAwareSSLOptions
类,该类使用jsse系统属性(由-Djavax.net.ssl.*
).如果您需要的超出系统属性允许的范围,请使用
RemoteEndpointAwareJdkSSLOptions
班级。有关详细信息,请参阅JavaDriver3.6SSL页面。
另一方面,该驱动程序的v3.6版本是在2018年8月发布的,因此非常旧。如果您正在开发新的应用程序,我们建议您使用最新版本的驱动程序。如果遇到旧版本的问题,无论如何都需要升级才能得到修复。干杯!