Mac OSX上的Elasticsearch Python客户端SSLError

时间:2016-12-08 02:32:41

标签: python macos ssl urllib3

我们的开发人员最近在我们的内部ElasticSearch服务器上启用了SSL,而我们的Ubuntu开发盒正在连接到它,但它在Mac开发盒上运行SSLError(运行Django)。 / p>

SSLError at /search
ConnectionError(EOF occurred in violation of protocol (_ssl.c:590)) caused by: SSLError(EOF occurred in violation of protocol (_ssl.c:590))

到目前为止我所知道的:

  • 不仅限于El Capitan,也打破早期版本
  • 我们可以通过https连接到其他ES服务,我们的devops告诉我,我们的ES服务有更高的https要求
  • Openssl v0.9.8在ES服务上存在握手问题
  • Openssl v1.0.1在ES服务上运行良好

网上有很多关于这个问题的帖子,但都没有帮助。

我试过了:

  • brew link --force openssl(但是EL Capitan正在停止它),所有解决方案都没有从Homebrew refusing to link OpenSSL起作用
  • /usr/local/opt/openssl/lib添加到DYLD_LIBRARY_PATH
  • 将python从2.7.10升级到2.7.12
  • 重建virtualenv

以上都没有工作......

问题:

  • 是由于OpenSSL版本吗?
  • 是否归因于_ssl.c的Python版本?
  • 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

最后钉了它,基本上你必须安装更新了openssl的Python

签入Python cmd

import ssl
print ssl.OPENSSL_VERSION

应打印0.9.x

现在更新:

  1. brew install openssl,如果拒绝,请不要担心链接,请确保>=1.x.x
  2. ' brew install python --with-brewed-openssl`
  3. 通过指定酿造的Python版本来重新创建virtualenv,例如。 mkvirtualenv --python=/usr/.../Cellar/python/bin/python <project>