pip WindowsLinux

pip: Could not fetch URL — SSL error при установке пакета

  • Обновлено
  • Чтение ≈ 4 минуты

Краткий ответ

pip не может проверить сертификат PyPI: проблемы с корневыми сертификатами, перехват трафика антивирусом или прокси, неверные дата и время. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Проверка
  5. Прокси и зеркала
  6. Окружение

#Что означает ошибка

Сообщение
Could not fetch URL https://pypi.org/simple/: There was a problem confirming the ssl certificate

pip install с ошибкой SSLError: Could not fetch URL https://pypi.org/simple/... или HTTPSConnectionPool ... SSLError означает, что pip не смог установить защищённое соединение с PyPI. Причины: старая версия Python и pip, перехват трафика корпоративным прокси, неверное время или блокировка.

В этой статье — сетевая и версионная сторона; ошибки проверки сертификата разобраны отдельно.

Начните с проверки доступности PyPI.

pip не может проверить сертификат PyPI: проблемы с корневыми сертификатами, перехват трафика антивирусом или прокси, неверные дата и время. Обновите pip и сертификаты.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Устаревший pipСтарая версия.Обновите.
Перехват HTTPS антивирусомСканирование.Проверьте.
Корпоративный проксиСертификат.Укажите cert.
Неверное времяЧасы.Исправьте.

#Пошаговое решение

  1. Проверьте версии Python и pipВ терминале того окружения, где выполняется pip, запустите python -m pip --version и python --version, затем повторите установку и выпишите точный SSL-текст: CERTIFICATE_VERIFY_FAILED, certificate has expired, hostname mismatch или другой. Укажите адрес реестра в сообщении: PyPI или внутренний. Сначала проверьте часы компьютера через системные настройки даты/времени; неверное время приводит к ошибкам проверки сертификатов. Не используйте --trusted-host для обхода проверки.
  2. Проверьте доступ к pypi.orgОткройте официальный адрес https://pypi.org/simple/ в браузере и убедитесь, что нет предупреждения о сертификате. В системном терминале можно выполнить curl -I https://pypi.org/simple/; это проверка через другое TLS-хранилище, поэтому её успех не гарантирует успех Python. Если браузер тоже сообщает о недоверенном сертификате или подмене имени, не продолжайте вводить учётные данные и передайте адрес администратору сети. В корпоративной сети дополнительно проверьте, что указан правильный внутренний индекс.
  3. Проверьте прокси и VPNПроверьте VPN/прокси: в терминале выполните python -m pip config list, изучите PIP_INDEX_URL, PIP_CERT, REQUESTS_CA_BUNDLE, SSL_CERT_FILE, если они установлены. Конфигурация могла указывать на устаревший корпоративный корневой сертификат. Не удаляйте настройки без выяснения источника; запросите у администратора актуальный сертификат и адрес прокси по внутреннему каналу. Если проблема возникает только в корпоративной сети, настройку доверия должен подтвердить её администратор.
  4. Обновите certifi и ca-certificatesНа Linux обновления пакета системных сертификатов (ca-certificates) выполняются через пакетный менеджер дистрибутива и по согласованию с администратором. Для Python с официального установщика python.org на macOS можно применить Install Certificates.command из папки соответствующей версии Python в «Программах», если он предусмотрен. В новых выпусках pip может использовать системное хранилище через truststore; обновление certifi внутри этого же Python не всегда исправляет ошибку установки pip, так как проблема может находиться в серверной цепочке или прокси.
  5. Проверьте PIP_CERT и SSL_CERT_FILEЕсли администратор выдал проверенную цепочку корпоративного центра сертификации, можно указать pip соответствующий PEM-файл настройкой --cert /полный/путь/corp-ca.pem для конкретного запуска или согласованной конфигурацией PIP_CERT. Убедитесь, что файл действительно существует и получен от вашей организации. Затем повторите исходную установку; успех — скачанные пакеты без предупреждений TLS. Не добавляйте --trusted-host, verify=False и не выключайте проверку сертификатов; при сохранении ошибки передайте точный журнал без паролей.
  6. Диагностика без установки
    Linux · Терминал (Bash)Команда
    Диагностика без установки. Конфигурация может содержать закрытые URL и токены — не пересылайте вывод полностью.
    python -m pip --version
    python --version
    python -m pip config list

#Проверка

Выполните python -m pip --version и python --version. Старые Python (3.6 и ниже) не поддерживают современные TLS-требования PyPI. Проверьте доступ: curl -I https://pypi.org/simple/ и дату системы. Отключите VPN или включите, если провайдер блокирует. Попробуйте python -m pip install --upgrade pip через мобильный интернет.

#Прокси и зеркала

Для корпоративного прокси используйте одобренные организацией параметры из настройки pip и доверенный CA-сертификат. Не добавляйте --trusted-host: такой обход ослабляет защиту TLS. Не меняйте индекс на публичный автоматически, если проект использует внутренние пакеты или утверждённый реестр.

#Окружение

Обновление доверенных сертификатов зависит от ОС и конкретного Python. На macOS в некоторых официальных установках есть Install Certificates.command; для системного Python Linux сертификаты обычно управляются средствами дистрибутива. Не пытайтесь обновить certifi через неисправное соединение в качестве единственного решения: сначала определите, какое хранилище доверия использует pip и не подменяет ли сертификат корпоративный прокси.

Linux · Терминал (Bash)Команда
curl и Python могут использовать разные наборы CA. Обновление pip во время ошибки TLS не является универсальным решением.
curl -I https://pypi.org/simple/
# При наличии certifi в том же Python:
python -m pip show certifi

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.