Cassandra C# TLS 版本选择?

Posted

技术标签:

【中文标题】Cassandra C# TLS 版本选择?【英文标题】:Cassandra C# TLS version selection? 【发布时间】:2021-08-13 20:30:36 【问题描述】:

如何选择不同版本的 TLS 以实现与 Apache Cassandra 集群的安全客户端连接。集群运行 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();

我在 Cassandra 的 system.log 中看到的问题是:

io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: error:100000f0:SSL routines:OPENSSL_internal:UNSUPPORTED_PROTOCOL

经过进一步分析,我发现客户端正在尝试使用已过时且在 Java 1.8 中默认禁用的 TLSv1。

所以我的问题是如何在构建器中设置使用不同的 TLS 版本?

谢谢

【问题讨论】:

【参考方案1】:

SSLOptions 类型有一个构造函数,允许您指定要使用的 ssl 协议。

【讨论】:

以上是关于Cassandra C# TLS 版本选择?的主要内容,如果未能解决你的问题,请参考以下文章

来吧,Cassandra

在 Cassandra 中使用轻量级事务 (CAS) 时,我们如何避免丢失写入?

com.datastax.oss -> java-driver-core 和 com.datastax.cassandra -> cassandra-driver-core 之间的 Cas

Cassandra 允许在 C# 中进行过滤

选择带有stratio lucene索引的cassandra的排序查询,版本> 2.2

安装cassandra