如何使用Cassandra的Python驱动程序连接到带有密钥库和信任库文件的集群?

g6ll5ycj  于 2023-06-05  发布在  Cassandra
关注(0)|答案(1)|浏览(177)

我可以使用keystore和trustore文件和密码字符串连接到Datastax Dev Center。然而,我在互联网上找了找,但没有关于如何将这些文件与Cassandra的Python驱动程序一起使用的文档。所有内容都仅与证书和密钥库文件有关。
连接到主机时出现错误“ssl:3517”。

5tmbdcev

5tmbdcev1#

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

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)

如果集群启用了客户端的证书检查,则需要在ssl_opts字典中指定keyfilecertfile参数,并将路径传递到密钥和证书文件。查看python的文档了解所有可用选项。
您可以从keystore中提取数据并转换为支持的PEM格式,如下所示:

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

相关问题