easy_install и pip не работают с предупреждениями SSL

Я присматриваю за некоторыми серверами RHEL6 и пытаюсь настроить их на использование внутреннего сервера PyPi (проксируемого Nexus 3).

Проблема в том, что наш внутренний сервер PyPi является одним из нескольких виртуальных хостов SSL на одном сервере Nginx, а Python 2.6 несовместим с SNI; таким образом, easy_install не работает, потому что он пытается загрузить с неправильного URL-адреса Vhost, а pip не работает с SNIMissingWarning и InsecurePlatformWarning.

Я просмотрел совет на https://urllib3.readthedocs.io/en/latest/advanced- usage.html # ssl-warnings , но похоже, что это обходной путь для ваших собственных сценариев; он не решает проблемы в самом Python. Я все равно установил urllib3 и связанные с ним пакеты, и проблема остается.

[root@foo.internal ~]# pip install --index https://nexus3.internal/repository/pypi-proxy/simple twine
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Collecting twine
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Could not fetch URL https://nexus3.internal/repository/pypi-proxy/simple/twine/: There was a problem confirming the ssl certificate: [Errno 1] _ssl.c:490: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed - skipping
  Could not find a version that satisfies the requirement twine (from versions: )
No matching distribution found for twine
2
задан 31 July 2017 в 17:05
1 ответ

Просто взгляните на ссылку, указанную в сообщении об ошибке;)

https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning

SNIMissingWarning

Это происходит в версиях Python 2 старше 2.7.9. В этих более старых версиях отсутствует поддержка SNI. Это может привести к тому, что серверы представят сертификат, который клиент считает недействительным. Следуйте инструкциям pyOpenSSL , чтобы устранить это предупреждение.


Ссылки pyOpenSSL возвращают:

Проверка сертификата в Python 2

Более старые версии Python 2 построены с использованием модуля ssl, в котором отсутствует поддержка SNI и может отставать от обновлений безопасности. По этим причинам рекомендуется использовать pyOpenSSL.

Если вы устанавливаете urllib3 с дополнительным обеспечением безопасности, все необходимые пакеты для проверки сертификата на Python 2 будут установлены:

 pip install urllib3 [secure]
 

Если вы хотите установить пакеты вручную, вам потребуется pyOpenSSL , криптография , idna и certifi

2
ответ дан 3 December 2019 в 11:28

Теги

Похожие вопросы