如何为Apache Cassandra集群的安全客户端连接选择不同版本的TLS。群集运行的是Cassandra 4.0版。客户端应用程序正在使用C#的Datastax驱动程序。我的集群构建器代码看起来像这样(我已经清理了真实的用户、密码、IP等):
Cluster.Builder().WithCredentials("keyspaceUser", "keyspacePassword")
.AddContactPoints("127.0.0.1, 128.0.0.1, 129.0.0.1")
.WithSSL(new SSLOptions()
.SetCertificateCollection(new X509Certificate2Collection
{
new X509Certificate2(certPath, "certificatePassword")
}
)
.SetRemoteCertValidationCallback(
(sender, certificate, chain, errors) => { return true; }
)
)
.WithLoadBalancingPolicy(new RoundRobinPolicy())
.Build();
我在卡桑德拉的system.log中看到的问题是:
io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL
经过进一步的分析,我可以发现客户端正在尝试使用TLSv1,它在Java1.8中已经过时,默认情况下是禁用的。
所以我的问题是如何在构建器中设置以使用不同的TLS版本?
谢谢
发布于 2021-09-10 14:14:58
ssl类型有一个构造函数,它允许您指定要使用的SSLOptions
协议。
https://stackoverflow.com/questions/67690633
复制相似问题