Подтвердить что ты не робот

Git - функция аннулирования не смогла проверить отзыв для сертификата

Я пытаюсь клонировать из Github, используя как Github Desktop, так и оболочку git, но продолжаю получать эту ошибку:

Cloning into 'C:\Users\John Doe\workspace\MyProject'...
fatal: unable to access 'https://github.com/JohnDoe/MyProject.git/': 
schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 
The revocation function was unable to check revocation for the certificate.

Такая же проблема при перемещении существующего репозитория.

Я уже пытался загрузить SSH-ключи, найденные в ~/.ssh/github-ssh.pub, в настройки Github, но ничего не помогает.

РЕДАКТИРОВАТЬ: Просто проверено, это произойдет, даже если я попытаюсь клонировать несуществующий репозиторий.

4b9b3361

Ответ 1

Кажется, что брандмауэр блокировал git доступ к списку аннулирования. Чтобы переопределить это, я установил конфигурацию:

git config --global http.sslVerify false

Ответ 2

Всегда сложно отключить проверку сертификата (установка http.sslVerify на false).

Я думаю, проблема в том, что при установке git вы выбрали библиотеку Windows Secure Channel вместо библиотеки OpenSSL:

Git параметры установки

Как указано @CurtJ.Sampson(спасибо, Курт!), вы можете переключиться на использование библиотеки OpenSSL, чтобы исправить вашу проблему. Это можно сделать с помощью следующей команды:

git config --global http.sslBackend openssl

В качестве альтернативы вы можете повторно установить git, указав библиотеку OpenSSL в этом процессе.

Не забудьте снова включить проверку git SSL с помощью:

git config --global http.sslVerify true

Обновить. Если вы используете самозаверяющие или корпоративные сертификаты на своем собственном сервере git, и вы получаете сообщение об ошибке при попытке подключиться к нему (например, самозаверяющий сертификат в сертификате цепочка или сертификат SSL: не удается получить сертификат локального эмитента), тогда решение должно сообщить git, где найти ЦС, который использовался для подписи этого сертификата сайта. Вы можете сделать это со следующей командой конфигурации:

git config --global http.{your site URL here}.sslcainfo "{path to your cert file}"

Например, если у вас есть локальный сервер git в https://my.gitserver.com/, а ЦС, который подписал сертификат сайта, находится в C:\Certs\MyCACert.crt, тогда вам нужно будет ввести:

git config --global http.https://my.gitserver.com/.sslcainfo "C:\Certs\MyCACert.crt"

Это более надежное решение по сравнению с добавлением сертификата CA в файл git в комплекте ca-bundle.crt, так как этот файл будет перезаписан при следующем обновлении git.