Невозможно вытащить / вставить в репозиторий git

$ git pull origin master
fatal: unable to access 'https://xxxxxxxxxxxxxxx': 
      error setting certificate verify locations:
CAfile: C:/Users/abc/AppData/Local/Programs/Git/usr/bin/curl-ca-bundle.crt
CApath: none

Я получаю эту ошибку, когда я нажимаю на код.

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

24 ответа

Решение

Я также столкнулся с этой проблемой в Windows и запустил git с помощью gitbash. Я просто переустанавливал gitbash, и gitbash автоматически управлял сертификатом git и требовал его путь.

Когда используешь https Вам нужно будет указать пароль или использовать сертификат. В вашем случае похоже, что сертификат не является действительным.

Попробуйте исправить это, указав git, где найти сертификат:

// Add the certificate to your configuration file
git config --system http.sslcainfo "C:\Program Files (x86)\git\bin\curl-ca-bundle.crt"

Кроме того, вы можете отключить проверки SSL:

// or switch off SSL checks completely by executing:
git config --system http.sslverify false

Установите это в своем конфиге, чтобы отключить его только для данного URL, а не для всех запросов

[http "https://weak.example.com"]
    sslVerify = false

http.sslVerify

Нужно ли проверять сертификат SSL при получении или отправке по HTTPS.


http.sslCAInfo

Файл, содержащий сертификаты для проверки однорангового узла при получении или передаче по HTTPS

У меня когда-то была такая же проблема. Моя проблема произошла после переустановки GIT для Windows. Я использую GIT для Windows 64-разрядных на Windows 10.

Я узнал, что установщик больше не устанавливает git в C:/Users/[USER_NAME]/AppData/Local/Programs/Git, Вместо этого он установил его подC:\Program Files\Git,

Тем не менее старый конфигурационный файл C:\ProgramData\Git\config не был отредактирован установщиком. Этот файл все еще содержит старый путь, поэтому я отредактировал его вручную.

Например, в моей системе я использовал

[http]
     sslCAInfo = C:/Programme/Git/mingw64/ssl/certs/ca-bundle.crt

может быть, вам придется использовать Program Files вместо

     sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

РЕДАКТИРОВАТЬ

Как сказал DS. в своем комментарии

C:\ProgramData\Git\config необходимо редактировать как администратор.

Например, щелкните правой кнопкой мыши на блокноте и выберите "Запуск от имени администратора", затем откройте файл.

В версии 2.x git-bash Путь к.crt изменился на../Git/mingw64/ssl/certs/ca-bundle.crt. Мне пришлось обновить это вручную в Git-Bash с

 git config --global http.sslcainfo "/path/to/Git/mingw64/ssl/certs/ca-bundle.crt"

Эта проблема может возникнуть, если клиент git не может найти доверенный центр сертификации для ssl. Если вы работаете в Windows, попробуйте переустановить его с https://gitforwindows.org/ .

Во время установки выберите вариант «Использовать собственную библиотеку Windows Secure Channel». Эта опция позволит вам использовать внутренний сертификат корневого центра сертификации вашей компании вместо стандартного ca-bundle.crt.

Попробуй это

git config --system http.sslcainfo "C:\Program Files (x86)\git\bin\curl-ca-bundle.crt"

или же

Отключите ваш SSL с помощью этой команды

git config --system http.sslverify false
 git config --global http.sslverify "false" 
  • решит проблему после того, как появится всплывающее окно для ввода вашего имени пользователя и пароля.

Если ваша версия git 2.8.1.windows.1, это может вам помочь. Во-первых, вам нужно найти свой домашний каталог git, у меня D:\SDK\Git. Просто в той же директории вы можете найти папку "usr", открыть ее и перейти в \ ssl \ certs, вы можете найти сертификат: ча-bundle.crt.

Затем откройте консоль, выполните:
git config --system http.sslcainfo "D:\SDK\Git\usr\ssl\certscabundle.crt"

Для будущих читателей:

У меня возникла эта проблема после установки пакетов devel на cygwin.

Я перепробовал все исправления в этой теме, но ничего не получалось

Затем я столкнулся с этой темой на GitHub

Я обнаружил, где в gitconfig указывается CAPATH, и удалил эту спецификацию https, и это решило мою проблему.

Перейдите в каталог git и переместите папку mingw64/ssl в папку mingw64/libexec/ssl.

В этой теме много ответов слепых, ведущих, слепых. Я просто еще один слепой человек, но у меня была та же проблема, и я решил ее, следуя этой простой статье. Как я понимаю первоначальный вопрос, git пытается найти файл сертификата SSL для использования протокола HTTPS и не может найти файл. Кажется, что большинство ответов здесь сосредоточены на "ну, тогда просто отключите SSL", а не на правильной замене файла.

Это заклинание должно сгенерировать файл сертификата и поместить его в правильное место для git на cygwin:

$ curl -sL http://ca.pdinc.us > /etc/pki/ca-trust/source/anchors/ca.pdinc.us.pem \
&& update-ca-trust

Если вы настроили свой git config (как я) и вам нужно установить его НАЗАД, это должно сделать это:

$ git config --global http.sslcainfo "/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt"

Еще одно замечание, которое может повлиять на многих людей, читающих эту ветку: ожидаемое расположение файла сертификата зависит от того, какой исполняемый файл git вы используете. Поскольку мы говорим о Cygwin, некоторые (большинство?) Из нас, вероятно, также имеют встроенный в Windows вариант git. Если ваши пути Cygwin настроены для поиска исполняемого файла Windows git, ваш пробег может отличаться в зависимости от того, куда указывать http.sslcainfo конфигурации. Чтобы проверить, какой исполняемый файл выбирается для вас:

$ which git

Это будет работать при переходе с клиентов GIT 2.x на 2.5.x:

Похоже, после установки новой версии клиента GIT, он меняет путь, по которому ищет сертификаты, примерно так:

C:\Program Files\Git\mingw64

что-то вроде этого:

C:\Program Files\Git\mingw64\libexec

Чтобы это исправить, просто скопируйте папку 'ssl' в новое место, и она будет работать как шарм!

В текущей сборке Git для Windows (2.18.0.windows.1) есть ошибка - если http.sslcainfo не установлен, он ожидает найти хранилище сертификатов в C:/Program Files/Git/mingw64/libexec/ssl/certs/ca-bundle.crt,

Хранилище сертификатов фактически установлено в C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt поэтому, чтобы исправить это, вы должны указать правильный путь.

Кроме того, реализация SCHANNEL также нарушена в этой сборке.

Наконец, диспетчер учетных данных Git также не работает, потому что если у вас есть учетные данные CI/CO, сохраненные из установки gitlab-runner, он не сможет клонировать /push/pull с ошибкой доступа, вместо того, чтобы запрашивать другие учетные данные.

Я получил ту же проблему после моего последнего обновления Cygwin после установки Windows 10. Команда update-ca-trust не удалось во время установки.

Кажется, причина в том, что владелец группы для папки сертификата был поврежден. Несколько радикальным решением было удалить /etc/groupОказалось, что Cygwin может напрямую спрашивать Windows о правах группы.

Решение найдено по адресу http://zaunerc.blogspot.se/2016/01/cygwin-mapping-windows-sids-to-posix.html

Я ранее установил git, а затем удалил его.

Так что для меня было так же просто, как переустановить правильную версию git (для меня win x64) из

https://git-scm.com/download/win

Я нашел сертификат SSL по адресу:

C:\Users\[USERNAME]\AppData\Local\GitHub\PortableGit_[portable code]\usr\ssl\certs

тогда вы можете следовать решению CodeWizard, то есть:

// Add the certificate to your configuration file
git config --system http.sslcainfo "[LOCATION_SPECIFIED_ABOVE]/cabundle.crt"

Я нашел следующие шаги полезными для исправления проблемы на моем конце для Windows 10:

Делаем деинсталляцию git.

Однако, git uninstaller не делает чистую работу. Поэтому вам может потребоваться удалить каталог Git по адресу C:\Users[Мое имя]\AppData\Local\Programs\

После этого новая установка git должна установить его в каталог C:\Program Files\Git, куда указывает файл конфигурации, чтобы прочитать сертификат ssl.

Я столкнулся с тем же сообщением об ошибке, но при клонировании репозитория github, к сожалению, установил http.sslcainfo не совсем помогло. Поскольку я оказался за корпоративным прокси-сервером, настройка http.proxy исправил это для меня.

Я получил ту же ошибку в Windows 7. Обнаружил, что путь сертификата, указанный в ошибке, не существует. Вместо...\mingw32\usr\ssl... файл сертификата находился в...\mingw2\ssl... Поэтому я вручную создал папку usr и переместил все дерево ssl в usr. Это решило проблему.

У меня такое же сообщение об ошибке, но в моем случае это произошло потому, что я изменил настройки github, чтобы использовать ssh вместо https.

И репозиторий с проблемой был клонирован с https после удаления удаленного и повторного добавления его с помощью ssh, он работает как положено.

$git remote remove origin
$git remote add origin git@github.com:UserName/repo.git

затем git remote show origin правильно показывает пульт.

Используя Intellij и git-sdk-64, и выбрал git-sdk-64\mingw64\bin\git.exe сначала, чтобы получить эту проблему, а затем при переключении на git-sdk-64\cmd\git.exe он определил местоположение файла сертификата в одиночку, и никакая другая конфигурация не требовалась. (не использовал git config --global http.sslcainfo ...)

У меня была та же ошибка, и я исправил ее, переустановив git по умолчанию:

C: \ Program Files \ Git

Это все

Благодаря https://github.com/npm/npm/issues/1484
git config --global http.sslverify "false" решит проблему

У меня аналогичная проблема, но удаление gitbash и переустановка в систему помогли мне.

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