Python cassandra驱动程序 - SSL:WRONG_VERSION_NUMBER

时间:2017-06-22 15:54:54

标签: python ssl cassandra datastax

我正在尝试使用datastax cassandra驱动程序连接到启用了SSL的cassandra节点,如下所示:

from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider 

import ssl
ip = <ip>
ap = PlainTextAuthProvider(username=<username>, password=<password>) 

ssl_options = {
  'ca_certs': <path to PEM file>,
  'ssl_version': ssl.PROTOCOL_TLSv1
  }
cluster = Cluster([ip], auth_provider=ap, ssl_options=ssl_options)
session = cluster.connect() 

我可以使用pycassa成功连接到该节点,但我尝试切换到使用datastax driver

以上代码抛出以下异常:

NoHostAvailable: ('Unable to connect to any servers', {<ip>: error(1, u"Tried connecting to [(<ip>, <port>)]. Last error: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:590)")})

我知道服务器接受PROTOCOL_TLSv1,因为它是pycassa中的默认协议。我不明白我在这里做错了什么......

1 个答案:

答案 0 :(得分:2)

尝试在未协商SSL的套接字上使用SSL连接时,通常会发生此错误。

确认服务器中已启用SSL,以及您要连接的端口。我认为这应该在服务器系统日志中很明显。