【问题标题】:Can't connect to Cassandra with SSL using cqlsh无法使用 cqlsh 通过 SSL 连接到 Cassandra
【发布时间】:2015-02-05 15:12:43
【问题描述】:

我正在尝试让 SSL(客户端到节点)在 Cassandra 2.1.2 上运行。

我已经按照here 的说明创建了密钥库和信任库。然后我将 cassandra.yaml 更新为:

client_encryption_options:
    enabled: true
    keystore: /etc/cassandra/security/.keystore
    keystore_password: ********
    # require_client_auth: false
    # Set trustore and truststore_password if require_client_auth is true
    truststore: /etc/cassandra/security/.truststore
    truststore_password: ********
    # More advanced defaults below:
    # protocol: TLS
    # algorithm: SunX509
    # store_type: JKS
    # cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]

我正在尝试使用 cqlsh 进行连接,但出现以下错误:

 Connection error: ('Unable to connect to any servers', {'192.168.0.16': ConnectionShutdown('Connection <AsyncoreConnection(140569820674832) 192.168.0.16:9042 (closed)> is already closed',)})

我的 cqlshrc 文件如下所示:

[connection]
hostname = 192.168.0.16
port = 9042
factory = cqlshlib.ssl.ssl_transport_factory

[ssl]
validate = false
certfile = /home/flavien/localhost.pem

对于certfile,我试过pem和crt文件,这个没什么区别。

Cassandra 日志中没有任何证据 - 没有错误,什么都没有。

我的java版本是这样的:

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

我已经安装了 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files。

我也尝试使用 DevCenter 和 C# 驱动程序连接,但无济于事。

知道我怎样才能完成这项工作吗?

【问题讨论】:

  • 您是否使用--ssl 标志运行cqlsh?
  • 这是正确的答案,我认为它会自动使用 SSL,但实际上仍然需要 --ssl 标志。您可以将其发布为答案,我会接受。

标签: ssl cassandra cassandra-2.0 cqlsh


【解决方案1】:

您必须使用--ssl 标志,如Documentation for 2.1 中所述

【讨论】:

  • 标志是--ssl。所以,运行cqlsh --ssl
  • 这应该在答案中更新,不幸的是它只有一个字符编辑。
猜你喜欢
  • 2014-12-18
  • 2018-08-12
  • 2016-02-14
  • 2018-05-18
  • 2016-04-11
  • 1970-01-01
  • 2023-04-06
  • 2015-11-22
  • 2019-10-15
相关资源
最近更新 更多