Elasticsearch:安装屏蔽后无法使用 python 连接

Elasticsearch : Cannot connect using python when shield is installed

我正在使用 elasticsearch 2.3.1 和 python 2.7。我正在尝试创建一个简单的实例并进行测试

esInstance = Elasticsearch(['https://'+shield_uname+":"+shield_pass+"@"+server+":"+port])

print esInstance.info()

但我明白了

elasticsearch.exceptions.SSLError: ConnectionError(EOF occurred in violation of protocol (_ssl.c:590)) caused by: SSLError(EOF occurred in violation of protocol (_ssl.c:590))

我做错了什么?我在尝试

时遇到同样的错误
requests.get("https://"+shield_uname+":"+shield_pass+"@"+server+":"+port, verify=False)

我该如何解决这个问题?

我认为你最好只 passing the fields as arguments,因为你已经将它们作为单独的变量。

这是身份验证示例的 "fullest" 版本,插入了您的变量:

# SSL client authentication using client_cert and client_key

es = Elasticsearch(
    [server],
    http_auth=(shield_uname, shield_pass),
    port=port,
    use_ssl=True,
    verify_certs=True,
    ca_certs='/path/to/cacert.pem',
    client_cert='/path/to/client_cert.pem',
    client_key='/path/to/client_key.pem',
)

注意port后面的参数都是处理SSL的。如果您确实在使用证书,那么您需要确保您已将它们告知 Python。如果您使用的是标准证书,则可以使用 certifi,如上文 link 所示。