Клиент Elasticsearch Python SSLError в Mac OSX

Наши разработчики недавно включили SSL на наших внутренних серверах ElasticSearch, в то время как наши блоки разработки Ubuntu подключаются к нему нормально, но это вызывает SSLError на блоках разработки Mac (с Django).

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, также ломается в более ранней версии
  • Мы можем подключиться к другому сервису ES через https, наши разработчики сказали мне, что у нашего сервиса ES более высокие требования к https.
  • Openssl v0.9.8 имеет проблему рукопожатия в службе ES
  • Openssl v1.0.1 отлично работает на сервисе ES

В Интернете есть много сообщений об этой проблеме, но никто не помог.

Я пытался:

  • brew link --force openssl (но EL Capitan останавливает его), ни одно из решений не работало из Homebrew отказ связать OpenSSL
  • добавление /usr/local/opt/openssl/lib к DYLD_LIBRARY_PATH
  • обновление питона с 2.7.10 до 2.7.12
  • восстановление виртуальной среды

Ничего из перечисленного не помогло...

Вопросы:

  • Это из-за версии OpenSSL?
  • Это связано с версией Python из-за _ssl.c?
  • Как я могу это исправить?

person James Lin    schedule 08.12.2016    source источник


Ответы (1)


Наконец-то получилось, в основном вам придется установить Python с обновленным openssl.

проверить в 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. воссоздайте virtualenv, указав готовую версию Python, например. mkvirtualenv --python=/usr/.../Cellar/python/bin/python <project>
person James Lin    schedule 08.12.2016