
Вы пытаетесь получить последние обновления из удаленного репозитория с помощью git pull
, но вместо успешного завершения операции сталкиваетесь с загадочной ошибкой CRYPT_E_REVOCATION_OFFLINE
? Это раздражающая проблема, которая встречается все чаще и чаще на утаревших версиях систем симейства Windows. Ошибка может остановить вашу работу. В этой статье мы подробно разберем, что вызывает эту ошибку, и представим несколько надежных способов ее решения, от наиболее безопасного к более радикальным.
Что означает ошибка CRYPT_E_REVOCATION_OFFLINE?
Ключевой момент для понимания: эта ошибка исходит не из самого Git, а из системы безопасности Windows. Когда Git пытается установить безопасное соединение по HTTPS с удаленным сервером (например, GitHub, GitLab или Bitbucket), Windows пытается проверить SSL-сертификат этого сервера.
Частью этого процесса проверки является запрос к списку отозванных сертификатов (Certificate Revocation List, CRL). Этот список, хранящийся у Центра сертификации (CA), нужен для проверки того, что сертификат сервера не был скомпрометирован и отозван досрочно. Если ваша система не может получить доступ к этому списку (из-за отсутствия интернета, настроек firewall, блокировок прокси или проблем с DNS), Windows генерирует ошибку CRYPT_E_REVOCATION_OFFLINE
и сообщает о ней через Git.
Проще говоря: Windows говорит "Я не могу проверить, не был ли этот сертификат отозван, потому что у меня нет связи с сервером, который хранит эту информацию".
Спос решения проблемы
Способ 1: Проверка сетевых подключений (Самый правильный)
Первое, что следует сделать — это убедиться, что проблема не в вашем сетевом окружении.
- Проверьте подключение к интернету: Убедитесь, что другие сайты и сервисы доступны.
- Временно отключите антивирус и брандмауэр: Защитное программное обеспечение иногда может излишне агрессивно блокировать исходящие запросы на проверку сертификатов. Если после отключения ошибка пропала, настройте исключения в вашем ПО.
- Обратитесь к сетевому администратору: Если вы работаете в корпоративной сети, проблема может быть в настройках корпоративного firewall или прокси-сервера, которые блокируют запросы к URL-адресам центров сертификации.
Способ 2: Отключение проверки SSL только для Git (Рекомендуемый)
Это самое элегантное и безопасное решение, так как оно не ослабляет защиту всей вашей системы, а влияет исключительно на поведение Git.
Вы можете установить переменную окружения, которая говорит Git пропускать проверку SSL-сертификатов.
Временное решение (для текущей сессии):
set GIT_SSL_NO_VERIFY=true git pull
Команда set
действует только в рамках текущего окна командной строки или PowerShell.
Постоянное решение (для пользователя):
- Нажмите
Win + R
, введитеsysdm.cpl
и нажмите Enter. - Перейдите на вкладку "Дополнительно" и нажмите "Переменные среды".
- В разделе "Переменные среды пользователя" нажмите "Создать...".
- В поле "Имя переменной" введите:
GIT_SSL_NO_VERIFY
- В поле "Значение переменной" введите:
true
- Нажмите "ОК" и закройте все окна.
- Важно: Перезапустите ваше окно терминала (Git Bash, CMD, PowerShell) для применения изменений.
Почему это лучший метод? Он локален и безопасен. Git будет работать, а все остальные приложения на вашем компьютере (браузеры, мессенджеры, почтовые клиенты) продолжат тщательную проверку SSL-сертификатов, обеспечивая вашу общую безопасность в сети.
Способ 3: Глобальное отключение проверки отзыва сертификатов (Не рекомендуется)
Это "тяжелая артиллерия". Данный метод отключает проверку отзыва сертификатов для всей операционной системы, что может сделать ее более уязвимой. Используйте его как последнее средство и только если понимаете потенциальные риски.
- Нажмите
Win + R
, введитеinetcpl.cpl
и нажмите Enter. - Перейдите на вкладку "Дополнительно".
- Прокрутите список вниз до раздела "Безопасность".
- Снимите следующие две галочки:
- Проверять отозванные сертификаты издателя
- Проверять, не отозван ли серверный сертификат
- Нажмите "Применить", затем "ОК".
Внимание! После успешного выполнения операций с Git настоятельно рекомендуется вернуть эти галочки на место, чтобы не снижать уровень безопасности вашей системы при серфинге в интернете или использовании других приложений.
Заключение и итоги
Ошибка CRYPT_E_REVOCATION_OFFLINE
— это классический пример проблемы на стыке разных систем: Git полагается на встроенные механизмы безопасности Windows, которые, в свою очередь, зависят от сетевой инфраструктуры.
Краткий алгоритм ваших действий:
- Не паниковать. Ошибка не означает, что с вашим репозиторием или компьютером что-то не так.
- Использовать переменную окружения
GIT_SSL_NO_VERIFY=true
. Это целевое и безопасное решение, которое работает в 99% случаев. - Если не сработало, и вы в корпоративной сети, поговорите с сетевым администратором о доступе к CRL.
- Крайне нежелательный вариант — временно отключить проверку глобально в настройках Windows, не забыв включить ее обратно.
Теперь вы вооружены знаниями, чтобы быстро победить эту ошибку и вернуться к кодингу без лишних задержек!