Ошибка SSL при загрузке пакета python в пользовательский реестр с использованием шпагата - PullRequest
0 голосов
/ 22 апреля 2020

При попытке загрузить пользовательский пакет python в наш внутренний реестр происходит сбой со следующей ошибкой:

 urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='custom-nexus.com’, port=443): Max retries exceeded with url: /repository/pypi-internal/ (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))

Но тот же URL-адрес работает нормально при доступе через curl. Использование параметра curl -v обнаружило, что используемый пакет был в каталоге /etc/pki/tls/certs/ca-bundle.crt

Поэтому попытался указать это в команде загрузки шпагата с помощью --cert вариант. Но затем он также не работает и не работает с той же ошибкой.

twine upload --config-file .pypirc   --cert /etc/pki/tls/certs/ca-bundle.crt  -r pypi dist/*

Python используемая версия составляет 3,6. Пожалуйста, найдите ниже список версий библиотеки.

certifi==2020.4.5
setuptools==46.1.3
wheel==0.34.2
twine==3.1.1
pyOpenSSL==19.1.0

1 Ответ

0 голосов
/ 28 апреля 2020

По какой-то причине у меня это не сработало даже после предоставления сертификата с использованием опции --cert. Может быть некоторые проблемы с сертификатом. Затем я наткнулся на следующий хак, чтобы пропустить проверку ssl в python библиотеке запросов

Отключить Python запрашивает проверку SSL для импортированного модуля

(Для всех, кто не знает, TWINE под капотом также использует python библиотеку запросов)

После этого я попробовал приведенную ниже команду, и она сработала!

export CURL_CA_BUNDLE="" && twine upload ...
...