Не удалось обновить Conda: ошибка SSL: сбой проверки сертификата [SSL: CERTIFICATE_VERIFY_FAILED]

Я обнаружил, что была проблема, когда я пытался сделать

conda update <package>

Терминальный выход

conda update bokeh Извлечение метаданных пакета: ошибка проверки SSL: проверка сертификата [SSL: CERTIFICATE_VERIFY_FAILED] не удалась (_ssl.c:590) . Ошибка проверки.SSL: проверка сертификата [SSL: CERTIFICATE_VERIFY_FAILED] не удалась (_ssl.c:590) . Ошибка проверки SSL: Не удалось проверить сертификат [SSL: CERTIFICATE_VERIFY_FAILED] (_ssl.c:590) . Ошибка проверки.SSL: Не удалось проверить сертификат [SSL: CERTIFICATE_VERIFY_FAILED] (_ssl.c:590) . Спецификация пакета решений:. Пакетный план для установки в среде // Анаконда:

Будут загружены следующие пакеты:

package                    |            build
---------------------------|-----------------
decorator-4.0.2            |           py27_0          11 KB
ipython_genutils-0.1.0     |           py27_0          32 KB
path.py-8.1.1              |           py27_0          45 KB
pexpect-3.3                |           py27_0          60 KB
pickleshare-0.5            |           py27_0           8 KB
simplegeneric-0.8.1        |           py27_0           6 KB
traitlets-4.0.0            |           py27_0          88 KB
ipython-4.0.0              |           py27_0         916 KB
jinja2-2.8                 |           py27_0         263 KB
tornado-4.2.1              |           py27_0         515 KB
bokeh-0.9.3                |       np19py27_0        14.3 MB
------------------------------------------------------------
                                       Total:        16.2 MB

Следующие новые пакеты будут установлены:

ipython_genutils: 0.1.0-py27_0    
path.py:          8.1.1-py27_0    
pexpect:          3.3-py27_0      
pickleshare:      0.5-py27_0      
simplegeneric:    0.8.1-py27_0    
traitlets:        4.0.0-py27_0    

Следующие пакеты будут обновлены:

bokeh:            0.9.0-np19py27_0 --> 0.9.3-np19py27_0
decorator:        3.4.2-py27_0     --> 4.0.2-py27_0    
ipython:          3.2.0-py27_0     --> 4.0.0-py27_0    
jinja2:           2.7.3-py27_1     --> 2.8-py27_0      
tornado:          4.2-py27_0       --> 4.2.1-py27_0    

Продолжить ([y]/n)? Y

Загрузка пакетов... Не удалось подключиться к https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2 Ошибка: Ошибка подключения: [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалось (_ssl.c: 590): https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2

dendisuhubdy: finalproject dendisuhubdy $ brew link --force openssl Linking /usr/local/Cellar/openssl/1.0.2d_1... 1548 символических ссылок создано dendisuhubdy:finalproject dendisuhubdy$ conda обновление bokeh Выбор метаданных пакета загрузки: SSL_DIFI: SSLIFIF: CIF: SSLIFFA: ошибка проверки SSL: ] проверка сертификата не удалась (_ssl.c:590) . Ошибка проверки.SSL: [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась (_ssl.c:590) .SSL ошибка проверки: [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась (_ssl.c: 590) Ошибка проверки.SSL: не удалось подтвердить сертификат [SSL: CERTIFICATE_VERIFY_FAILED] (_ssl.c:590) . Спецификация пакета решений:. Пакетный план для установки в среде // Анаконда:

Будут загружены следующие пакеты:

package                    |            build
---------------------------|-----------------
decorator-4.0.2            |           py27_0          11 KB
ipython_genutils-0.1.0     |           py27_0          32 KB
path.py-8.1.1              |           py27_0          45 KB
pexpect-3.3                |           py27_0          60 KB
pickleshare-0.5            |           py27_0           8 KB
simplegeneric-0.8.1        |           py27_0           6 KB
traitlets-4.0.0            |           py27_0          88 KB
ipython-4.0.0              |           py27_0         916 KB
jinja2-2.8                 |           py27_0         263 KB
tornado-4.2.1              |           py27_0         515 KB
bokeh-0.9.3                |       np19py27_0        14.3 MB
------------------------------------------------------------
                                       Total:        16.2 MB

Следующие новые пакеты будут установлены:

ipython_genutils: 0.1.0-py27_0    
path.py:          8.1.1-py27_0    
pexpect:          3.3-py27_0      
pickleshare:      0.5-py27_0      
simplegeneric:    0.8.1-py27_0    
traitlets:        4.0.0-py27_0    

Следующие пакеты будут обновлены:

bokeh:            0.9.0-np19py27_0 --> 0.9.3-np19py27_0
decorator:        3.4.2-py27_0     --> 4.0.2-py27_0    
ipython:          3.2.0-py27_0     --> 4.0.0-py27_0    
jinja2:           2.7.3-py27_1     --> 2.8-py27_0      
tornado:          4.2-py27_0       --> 4.2.1-py27_0    

Продолжить ([y]/n)? Y

Загрузка пакетов... Не удалось подключиться к https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2 Ошибка: Ошибка подключения: [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалось (_ssl.c: 590): https://repo.continuum.io/pkgs/free/osx-64/decorator-4.0.2-py27_0.tar.bz2

Посоветуйте, пожалуйста, что мне нужно сделать, чтобы преодолеть это сообщение!

20 ответов

Решение

В соответствии с @jreback здесь https://github.com/conda/conda/issues/1166

conda config --set ssl_verify false 

отключит эту функцию, например, здесь

Конда должна знать, где найти хранилище сертификатов SSL.

conda config --set ssl_verify <pathToYourFile>.crt

Нет необходимости отключать проверку SSL.

Эта команда добавляет строку в ваш $HOME/.condarc файл или %USERPROFILE%\.condarc файл в Windows, который выглядит так:

ssl_verify: <pathToYourFile>.crt

Если вы покинете сеть своей организации, вы можете просто закомментировать эту строку в .condarc с # и раскомментируйте, когда вы вернетесь.

Если это все еще не работает, убедитесь, что вы используете последнюю версию curl, проверяя оба conda-forge а также anaconda каналы.

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

Вот как я это решил:

  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 remove certifi
conda install certifi

Тогда вы можете делать все, что пытались сделать раньше, например,

conda update --all

Для тех из нас, кто работает в корпоративных сетях и использует веб-фильтры, реализующие решения SSL с доверенными лицами, необходимо добавить сертификат веб-фильтра в certifi cacert.pem.

Руководство для этого здесь.

Основные шаги:

  1. подключиться к https сайту через браузер
  2. просмотреть и сохранить корневой сертификат
  3. конвертировать сертификат в .pem
  4. скопировать и вставить в конец существующего cacert.pem
  5. спасти
  6. SSL счастье

Для всех, кто борется с этой проблемой, вам просто нужно обновить установку openssl. Я использую Windows 10, установил последнюю 64-разрядную версию Anaconda и получаю эту ошибку, когда пытаюсь установить / обновить что-либо с помощью "conda" или "pip". Если я удаляю 64-битную анаконду и устанавливаю 32-битную, она работает нормально. У меня была установлена ​​64-битная версия openssl для Windows, версия 1.1.0. Я удалил это и установил последнюю версию, которую смог найти здесь: https://slproweb.com/products/Win32OpenSSL.html - там работает 64-битная версия 1.1.1, которая работает. Теперь я могу успешно устанавливать пакеты через pip и conda. Надеюсь это поможет.

Для меня проблема заключалась в настройке прокси. у меня было в моем.condarc:

      proxy_servers:
    http: http://our.proxy.org:80/
    https: https://our.proxy.org:80/

это не сработало. Вместо этого прокси-сервер HTTPS должен был быть указан сhttpпротокол (т.е. безs). Так,

      proxy_servers:
    http: http://our.proxy.org:80/
    https: http://our.proxy.org:80/

Эта ошибка SSL вводит в заблуждение. Я использую Anaconda 3, версия conda 4.6.11, у меня самая последняя версия openssl на экземпляре Windows 10. Я решил проблему, изменив настройки безопасности в папке Anaconda3 на Полный доступ. Не думаю, что это помогло, но я также изменил файл.. \ Anaconda3 \Lib\site-packages\certifi\cacert.pem, чтобы включить SSL-сертификат компании.

Надеюсь, эта информация поможет вам.

Я нахожусь за корпоративным брандмауэром, используя собственный сертификат pem. Чтобы устранить эту ошибку, необходимо сообщить anaconda и pip, где найти информацию о сертификате. Они хранятся в файле cacert.pem. Чтобы сообщить pip, где найти файл .pem, необходимо создать «pip.ini» (если он еще не существует). У Pip есть несколько папок, в которых он ищет файл .ini. Местоположение можно найти с помощью этой команды pip:

      pip config -v list

Выход:

      For variant 'global', will try loading 'C:\ProgramData\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\foobar\pip\pip.ini'
For variant 'user', will try loading 'C:\Users\foobar\AppData\Roaming\pip\pip.ini'
For variant 'site', will try loading 'C:\Python38\pip.ini'

В моей системе не было файла pip.ini, поэтому я поместил его в свою пользовательскую папку. Содержимое pip.ini:

      [global]
cert = C:\\ProgramData\\Anaconda3\\Lib\\site-packages\\certifi\\cacert.pem

Содержимое файла cacert.pem необходимо отредактировать. Необходимо добавить сертификат компании. Файл .pem можно загрузить локально из браузера Firefox или Chrome, никаких специальных прав не требуется (узнайте сами, как это сделать).

Для Anaconda необходимо отредактировать cacert.pem, добавить корпоративный SSL-сертификат. cacert.pem можно найти в двух разных местах каталога anaconda. Это правильное место:

      /Anaconda/Lib/site-packages/certifi/cacert.pem

Как только cacert.pem будет содержать необходимую информацию о сертификате, Anaconda Navigator сможет подключиться к Интернету.

Это связано с ошибкой .dll

перейдите в место, где вы установили anaconda anaconda3>Library>bin. найдите и скопируйте эти два файла .dll

libcrypto-1_1-x64.dlllibssl-1_1-x64.dll

вставьте в эту папку: anaconda3>DLLs.

затем перезагрузите компьютер.

проблема будет решена. Это работает для меня.

Кредит: https://github.com/conda/conda/issues/11982

Для меня сработало следующее: (MAC)

  1. Используйте homebrew для установки сертификатов openssl1.1
      brew install openssl@1.1
  1. Добавьте установленные сертификаты в переменную env с помощью:
      export REQUESTS_CA_BUNDLE='/usr/local/etc/openssl@1.1/cert.pem'
  1. Чтобы сохранить переменную env в anaconda, сначала активируйте соответствующую среду, а затем выполните:
      conda env config vars set export REQUESTS_CA_BUNDLE='/usr/local/etc/openssl@1.1/cert.pem'

Новый постер еще не может комментировать, но вот дополнительная опция и пояснение, если у вас есть доверенный SSL-сертификат, отличный от стандартного, например, при использовании корпоративного программного обеспечения для интернет-мониторинга, такого как ZScaler.

Предполагая, что у вас есть новый файл, вам может потребоваться добавить его к сертификату по пути python -m certifi, И установите этот объединенный файл в переменную REQUESTS_CA_BUNDLE.

Это может не сработать, если вы установите REQUESTS_CA_BUNDLE только в .

Протестировано в Windows 10. Связанными переменными являются AWS_CA_BUNDLE, SSL_CERT_FILE и CURL_CA_BUNDLE, хотя для них необходимо установить значение trusted.pemтолько на вашей локальной, а не на объединенной версии.

По какой-то причине внутри Dockerfile эти переменные ENV должны быть объединены .pemфайл (конечно, после соответствующих команд COPY)

Кажется, я обнаружил еще один сценарий, который не охватывает все возможные причины, перечисленные здесь. Необъяснимо, даже поворотssl_verifyне имело никакого эффекта и продолжало производить ту же самую SSLError.set SSL_NO_VERIFY=1тоже не повлияло.

Оказывается, это связано с переменной REQUESTS_CA_BUNDLE, которую мы установили для стандартного пакета корпоративных сертификатов. Он включает в себя прокси-сертификаты zscaler и т. д., а также другие внутренние центры сертификации, необходимые для повседневной разработки. Но, по-видимому, наш внутренний репозиторий Anaconda использует собственный сертификат, на который не распространяется этот пакет.
Я думаю, единственной удивительной частью здесь был приоритет. Я неправильно ожидал, что по крайней мере переменная среды, специфичная для conda (если не параметр .condarc), переопределит любые другие неявные, такие как переменная библиотеки запросов.

Итак, быстрый способ отладки в моем случае состоял в том, чтобы временно удалить переменную запросов, пока я запрашиваю добавление сертификата anaconda в корпоративный пакет:

      set REQUESTS_CA_BUNDLE=

Конечно, лучше всего настроить отдельный сертификат явно, как показано в других ответах:

      conda config --set ssl_verify "C:\ProgramData\condaRepoCert.pem"

Чтобы anaconda3 работала с RHEL\Centos на основе:

  1. Добавьте свои сертификаты в:/etc/pki/ca-trust/source/anchors/

  2. Бегать:

            update-ca-trust
    
  3. Экспорт:

            export CURL_CA_BUNDLE=/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt 
    export REQUEST_CA_BUNDLE=/etc/pki/ca-trust/extracted/openssl/cabundle.trust.crt  
    export SSL_CERT_FILE=/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt`
    
  4. Бегать:

            conda info -s
    

Вы должны увидеть эти env, настроенные в conda.

Та же проблема, с которой я столкнулся ниже в конфигурациях pip, исправила мою ошибку.

  1. pip config --user set global.index https://ваш-домен/репозиторий/public-lib-python-pypi/pypi
  2. pip config --user set global.index-url https://ваш-домен/репозиторий/public-lib-python-pypi/simple 
  3. pip config --user set global.trusted-host ваш-домен

Для меня это на самом деле потому, что я использую VPN. Так что я просто отключил VPN, эта проблема решена. (сбивая меня с толку некоторое время)

Надеюсь, этот ответ будет полезен.

в Windows установите для переменной среды SSL_NO_VERIF значение 1.set SSL_NO_VERIFY=1

обратитесь к https://conda.io/projects/conda/en/latest/user-guide/configuration/disable-ssl-verification.html .

Благодаря ответам здесь и на полдюжины других вопросов в SO, я написал исчерпывающий ответ по настройке pip и conda (и Git), когда вы находитесь за корпоративным прокси-сервером с самозаверяющим центром сертификации.

Как добавить пользовательский корневой сертификат CA в CA Store, используемый Python в Windows?

В Linux вам нужно сделать следующее:

      cd miniconda3
mkdir DLLs
cp lib/libcrypto* DLLs
cp lib/libssl* DLLs

у тебя должно быть все готово

После 2 часов работы в сети, наконец, для меня проблема была решена путем создания папки pip с файлом: pip.ini в C: \ Users\ AppData \ Roaming \, например:

C:\Users\<username>\AppData\Roaming\pip\pip.ini

Внутри я написал:

[global]
trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org

Я перезапустил python, а затем pip постоянно доверял этим сайтам и использовал их для загрузки пакетов с.

Если вы не можете найти папку AppData в Windows, напишите%appdata% в проводнике файлов, и она должна появиться.

Источник: установка pip завершается с ошибкой подключения: [SSL: CERTIFICATE_VERIFY_FAILED] не удалось проверить сертификат (_ssl.c:598)"

Другие вопросы по тегам