我可以使用keystore和trustore文件和密码字符串连接到Datastax Dev Center。然而,我在互联网上找了找,但没有关于如何将这些文件与Cassandra的Python驱动程序一起使用的文档。所有内容都仅与证书和密钥库文件有关。连接到主机时出现错误“ssl:3517”。
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字典中指定keyfile和certfile参数,并将路径传递到密钥和证书文件。查看python的文档了解所有可用选项。您可以从keystore中提取数据并转换为支持的PEM格式,如下所示:
ssl_opts
keyfile
certfile
keytool -importkeystore -srckeystore myapp.jks -destkeystore myapp.p12 \ -srcalias myapp-dev -srcstoretype jks -deststoretype pkcs12 openssl pkcs12 -in myapp.p12 -out myapp.pem
1条答案
按热度按时间5tmbdcev1#
Python驱动程序还不能与keystore/trustore一起工作(它们是Java特定的)。您需要将这些文件中的证书和密钥导出为PEM格式,并按照文档中的说明进行连接:
如果集群启用了客户端的证书检查,则需要在
ssl_opts
字典中指定keyfile
和certfile
参数,并将路径传递到密钥和证书文件。查看python的文档了解所有可用选项。您可以从keystore中提取数据并转换为支持的PEM格式,如下所示: