SSL-ошибка Conda

У меня возникли некоторые проблемы с тем, чтобы заставить conda уважать мое прокси-декларацию. Я скопировал прокси-строки из примеров в документации conda и заменил URL-адреса своими собственными. Я также экспортировал HTTP_PROXY и HTTPS_PROXY со строками, которые, как я знаю, работают. Мой файл ~/.condarc выглядит так:

proxy_servers:
    http: http://<proxyaddress>:<port>
    https: https://<proxyaddress>:<port>

Какие-либо предложения?

РЕДАКТИРОВАТЬ: версия conda: 3.14.1

похоже, что строка прокси на самом деле в порядке. Настоящая проблема, которая не возникла сначала, заключается в том, что conda не использует сертификат ca, который мне нужен, из-за нашего корпоративного прокси. Конкретная ошибка, которая появляется при попытке установить пакет:

Error: Connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581): ...

person LISTERINE    schedule 30.07.2015    source источник
comment
Что делает Конда?   -  person asmeurer    schedule 30.07.2015
comment
conda улучшила обработку прокси. Пожалуйста, добавьте свой номер conda --version к вопросу, чтобы прояснить проблему.   -  person Phil Cooper    schedule 31.07.2015


Ответы (4)


Я понял это, поэтому я подумал, что вернусь и доложу.

Я не уверен, как заставить conda использовать определенный сертификат, но conda использует запросы для своих веб-запросов. Вы можете внедрить пакет сертификатов в путь запросов, установив переменную среды REQUESTS_CA_BUNDLE.

поэтому я побежал:

export REQUESTS_CA_BUNDLE=/usr/local/share/ca-certificates/<my-cert-name>

и теперь conda может пройти через наш прокси!

person LISTERINE    schedule 31.07.2015
comment
Решение найдено здесь: stackoverflow.com/questions/33699577/ - person Eugene Yan; 06.02.2016

Я столкнулся с той же проблемой в Mac OS X и с Miniconda. Пробовав многие из предложенных решений в течение нескольких часов, я обнаружил, что мне нужно правильно настроить среду Condas (в частности, запросы, которые conda использует для установления HTTPS-соединений), чтобы использовать корневой сертификат, предоставленный моей компанией, а не общие сертификаты, которые предоставляет Conda.

Расширяя ответ @LISTERINE, вот как я мог его решить:

  1. Откройте Chrome, перейдите на любой веб-сайт, нажмите на значок замка слева от URL-адреса. Нажмите «Сертификат» в раскрывающемся списке. В следующем окне вы видите стопку сертификатов. Самый верхний (он же верхняя строка в окне) — это корневой сертификат (например, Zscaler Root CA в моем случае, у вас, скорее всего, будет другой).

введите здесь описание изображения

  1. Откройте связку ключей Mac OS, нажмите «Сертификаты» и выберите среди множества сертификатов корневой сертификат, который вы только что идентифицировали. Экспортируйте это в любую папку по вашему выбору.
  2. Преобразуйте этот сертификат с помощью openssl: openssl x509 -inform der -in /path/to/your/certificate.cer -out /path/to/converted/certificate.pem
  3. Для быстрой проверки настройте свою оболочку на подтверждение сертификата: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem
  4. Чтобы установить это навсегда, откройте свой профиль оболочки (.bshrs или, например, .zshrc) и добавьте эту строку: export REQUESTS_CA_BUNDLE=/path/to/converted/certificate.pem. Теперь выйдите из терминала/оболочки и снова откройте. Проверьте еще раз.

Вы должны быть настроены, и Conda должна работать нормально.

person petezurich    schedule 01.08.2019
comment
Работал как драгоценный камень. Спасибо! - person KaliCharan; 28.04.2020

У меня это сработало, отредактировав файл .condarc, как показано ниже.

channels:
    - defaults
#ssl_verify: C:\Users\ravikumk\certs\ca.crt

ssl_verify: false

# Show channel URLs when displaying what is going to be downloaded and
# in 'conda list'. The default is False.
show_channel_urls: True
allow_other_channels: True
person krkc    schedule 04.07.2021
comment
Одним из моих требований было по-прежнему использовать SSL. Установка для ssl_verify значения false очень небезопасна при использовании conda для загрузки, поскольку соединение может быть нарушено (например, кто-то может заставить вас загрузить вредоносные данные). - person LISTERINE; 05.07.2021
comment
Привет, @LISTERINE, Если это так, просто прокомментируй ssl_verify: false, а затем раскомментируй приведенное выше утверждение ssl_verify: ‹путь к твоему сертификату ca›. в противном случае вы можете установить эти сертификаты ssl глобально. - person krkc; 05.07.2021

person    schedule
comment
Одним из моих требований было по-прежнему использовать SSL. Установка для ssl_verify значения false очень небезопасна при использовании conda для загрузки, поскольку соединение может быть нарушено (например, кто-то может заставить вас загрузить вредоносные данные). - person LISTERINE; 23.02.2017