Как обновить OpenSSL для Python 2.7 без использования homebrew - PullRequest
1 голос
/ 21 июня 2019

При выполнении различных сценариев с Python 2.7.14 я продолжаю сталкиваться с ошибками, которые, похоже, приводят к моей OpenSSL установке.

например. при использовании requests:

requests.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:661)

Я в сети:

  • Python 2.7.14
  • MacOS Mojave Версия 10.14.3
  • НЕ используя доморощенный ! (и предпочел бы не)

Mac OS использует LibreSSL :

$ openssl version -a
LibreSSL 2.6.5
built on: date not available
platform: information not available
options:  bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: information not available
OPENSSLDIR: "/private/etc/ssl"

$ which openssl
/usr/bin/openssl

Однако в моих установках Python (из исходных текстов) используется OpenSSL - две разные версии:

$ python2.7 -c 'import ssl; print ssl.OPENSSL_VERSION'
OpenSSL 0.9.8zh 14 Jan 2016

$ python3.7 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.1.0i  14 Aug 2018

Я хочу обновить OpenSSL , используемый с Python 2.7, без использования homebrew (ни Anaconda) и без использования дополнительного пакета, такого как pyOpenSSL.

Большинство решений, которые я могу найти в Интернете, предлагают использовать homebrew и поэтому не отвечают на мой вопрос:

Ни одна из моих версий Python не установлена ​​с использованием homebrew, и я хотел бы остаться чистым, чтобы не усложнять установку моей ОС.

Учитывая, что установлены разные версии OpenSSL, я должен следовать этому предложению и связать Python 2.7 с более новой версией OpenSSL?

  • Это лучший способ двигаться вперед?
  • Что может пойти не так?
  • Какие жизнеспособные альтернативы?
  • Есть ли хороший ресурс для обучения навигации по SSL-Python-джунглям на Mac?

1 Ответ

0 голосов
/ 21 июня 2019

Учитывая, что в настоящее время установлены версии, предоставленные самим python.org, достаточно просто снова загрузить и установить последнюю версию.Учитывая старую версию OpenSSL в бинарном файле 2.7.14, похоже, что она была скомпилирована со старой версией, поставляемой с MacOS.В 2.7.15 это было изменено, как видно на странице загрузки :

Внимание пользователям MacOS: с 2.7.15 все установщики python.org macOS поставляется со встроенной копией OpenSSL .

Таким образом, вы можете ожидать наличия недавнего OpenSSL в Python 2.7, просто установив официальную версию 2.7.15, предоставленную python.org.Обратите внимание, что это также относится к Python 3.7, который у вас уже есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...