Cassandra Python API无法连接

时间:2018-12-07 03:35:56

标签: python cassandra

我可以使用带有密码字符串的密钥库,信任文件来连接到Datastax开发中心。但是我在互联网上看了看,没有关于如何使用这三个文件将python连接到Cassandra的文档。一切仅与证书和密钥库文件有关。我做了尝试,但实际上没有用。

主机无法连接,并显示ssl:3517错误。

1 个答案:

答案 0 :(得分:2)

Python驱动程序尚不能与keystore / trustore一起使用(它们是特定于Java的)。您需要将这些文件中的证书和密钥导出为PEM格式,并按照documentation中的说明进行连接:

from cassandra.cluster import Cluster
from ssl import PROTOCOL_TLSv1, CERT_REQUIRED

ssl_opts = {
    'ca_certs': '/path/to/my/ca.certs',
    'ssl_version': PROTOCOL_TLSv1,
    'cert_reqs': CERT_REQUIRED  # Certificates are required and validated
}
cluster = Cluster(ssl_options=ssl_opts)

如果集群启用了客户端的证书检查,那么您需要在keyfile字典中指定certfilessl_opts参数,并将路径传递给密钥和证书文件。有关所有available options,请参见python文档。

您可以从密钥库中提取数据,并使用以下方式将其转换为受支持的PEM格式:

keytool -importkeystore -srckeystore myapp.jks -destkeystore myapp.p12 \
  -srcalias myapp-dev -srcstoretype jks -deststoretype pkcs12
openssl pkcs12 -in myapp.p12 -out myapp.pem