Github: ошибка клонирования моего личного репозитория

Я пытаюсь клонировать мой проект GitHub, используя https-URL, но он завершается ошибкой:

$ git clone https://foo@github.com/foo/foo-private.git
Cloning into foo-private...
Password:
error: error setting certificate verify locations:
  CAfile: /bin/curl-ca-bundle.crt
  CApath: none
 while accessing https://foo@github.com/foo/foo-private.git/info/refs

fatal: HTTP request failed

Что я делаю неправильно?

27 ответов

Решение

Я видел это на Windows, с msysgit 1.7.2.3. Вы должны исправить путь к bin / curl-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-install-dir]/etc/gitconfig, который также можно редактировать напрямую.

(Оригинальные решения можно найти на http://github.com/blog/642-smart-http-support)

Я решил проблему с установкой Git по адресу: https://git-for-windows.github.io/ Найдите путь к файлу сертификата:

D: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt

Настройте путь Git:

git config --system http.sslcainfo "D: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"

Попробуйте снова

Если вы используете MSYS2...

Просто установите пакеты сертификатов с помощью следующих команд:

32 бита

pacman -S mingw-w64-i686-ca-certificates ca-certificates

64 бита

pacman -S mingw-w64-x86_64-ca-certificates ca-certificates
git config --global http.sslverify "false" 

Решит проблему. После этого появится всплывающее окно для ввода вашего имени пользователя и пароля.

Если вы используете Cygwin, вы можете установить пакет ca-Certificates с помощьюapt-cyg:

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /usr/local/bin
apt-cyg install ca-certificates

Как установить пакет cygwin из командной строки?

Решено: я получил эту ошибку, когда я установил обновление для установщика Git windows. Случилось так, что я не установил его с правами администратора, поэтому Git был установлен в "C:\Users\my_name\AppData\Local\Programs" вместо "C:\program Files". переустановка Git с правами администратора позволила поместить его в C: \ program Files, и все снова прошло нормально!

Это сработало для меня (я использую Manjaro Linux). Я запускаю cmd для просмотра CA-сертификатов:

$ curl-config --ca
**/etc/ssl/certs/ca-certificates.crt**

Но на самом деле я нашел сертификаты по пути:

**/etc/ca-certificates/extracted/ca-bundle.trust.crt**

Затем добавьте конфигурацию в ~/.gitconfig (если она не существует, создайте ее):

**vim ~/.gitconfig**
[http]
    sslVerify = true
    sslCAinfo = /etc/ca-certificates/extracted/ca-bundle.trust.crt

[user]
    email = <email of github account>
    name = <username of github account>

Оно работает!

.rbenv]$ git pull

remote: Counting objects: 70, done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 70 (delta 39), reused 12 (delta 12), pack-reused 6
Unpacking objects: 100% (70/70), done.
From https://github.com/sstephenson/rbenv
   c43928a..efb187f  master     -> origin/master
 + 37ec781...7e57b52 user-gems  -> origin/user-gems  (forced update)
Updating c43928a..efb187f
Fast-forward
 libexec/rbenv-init         |  4 ++--
 libexec/rbenv-version-file |  1 +
 test/init.bats             |  2 +-
 test/test_helper.bash      | 25 +++++++++++++++----------
 4 files changed, 19 insertions(+), 13 deletions(-)

git config --system http.sslcainfo /bin/curl-ca-bundle.crt

Это работает. Вам не нужно указывать полный путь.

Я столкнулся с этим, пока git pull. Для меня отредактировал глобальный конфигурационный файл git, который исправил проблему.

Перейдите в свою домашнюю папку и откройте файл.gitconfig. Обычно C:\Users\.gitconfig

Если файла там нет, создайте его

[HTTP]
sslcainfo = E: \ systools \ git-1.8.5.2 \ bin \ curl-ca-bundle.crt

Там вы должны указать свой собственный путь установки git. Я использовал переносную версию Git здесь.

Тогда git clone / pull это будет работать.

В моем случае win10 У меня есть две версии о.gitconfig

  • первый в C:\Program Files\Git\etc
  • второй находится в C:\Users\<user>

Команда

git config --system http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"

действительно вносит изменения в C:\Program Files\Git\etc, но git каким-то образом использует конфигурацию в C:\Users\<user>

Итак, с помощью блокнота я поменял второй .gitconfig и git, наконец, принял правильную конфигурацию и приступил к работе.

Я видел это на моем Github для Windows.

Я рекомендую удалить Github для Windows и установить его снова.

До этого я безуспешно пробовал несколько способов, но это решение помогло мне!

Если вы используете командную оболочку Git, которая устанавливается вместе с приложением GitHub для Windows, то это и другие проблемы могут проявиться после обновления. Просто запустите приложение Git Hub для Windows и снова выключите его. После этого оболочка снова заработает. Проблема в том, что обновление не завершается, пока не запустится приложение Windows. Простое использование оболочки не приводит к завершению обновления.

В моем случае решение проблемы заключалось в смене openssl на schannel:

До

      PS E:\www\XXXXX> git config --global http.sslverify "true"
PS E:\www\XXXXX> git pull origin main --force
fatal: unable to access 'https://gitlab.com/XXXXXXXXX.git/': error setting certificate verify
locations: CAfile: C:\Program Files\Git\mingw64\ssl\certs CApath: C:\Program Files\Git\mingw64\ssl\certs

Решение

      PS E:\www\XXXXX> git config --global http.sslbackend schannel

После

      PS E:\www\XXXXX> git config --global http.sslverify "true"

PS E:\www\XXXXX> git pull origin main --force

From https://gitlab.com/XXXXXXXXX
  * branch main -> FETCH_HEAD
Already up to date.

Это будет выглядеть так в C:\Program Files\Git\etc\gitconfig

      [http]
sslBackend = schannel
sslcainfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

Кстати, эта проблема может возникать в Windows, если пользователь, пытающийся использовать git, отличается от пользователя, который его установил. Ошибка может указывать на то, что git не может получить доступ к файлам сертификата. Установка git от имени администратора и использование ответа @rogertoday решили мою проблему.

Я столкнулся с этой ошибкой после обновления до Visual Studio 2019 16.10.2 (с 16.10.0), тогда как раньше Git работал правильно.

У меня Git отдельно не установлен. (Или, другими словами, я использую Git только как часть Visual Studio.)

Я решил эту проблему, найдя файл "ca-bundle.crt" в "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\ssl\certs\ca-bundle.crt", а затем скопировав его в папку, в которой он указывал, что его не удалось найти, "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt".

Обратите внимание, что мне пришлось создать каталоги "\ mingw64 \ ssl \ certs", поскольку они ранее не существовали.

После копирования туда файла Git смог сразу же выполнить синхронизацию без перезапуска Visual Studio.

Я нашел хорошее решение для добавления / обновления сертификатов CA в RHEL/CentOS 6, что является основной причиной, о которой сообщается.

Так как они становятся устаревшими дистрибутивами, полномочия кассира в этой системе не обновлялись до выполнения команды sudo yum update,

Не осознавал проблему до тех пор, пока режим GIT_CURL_VERBOSE не показывает проблему пути cacert.

В Windows, использующей msysgit, у меня была эта ошибка, и причина была в моих добавлениях наших корпоративных прокси-сертификатов.

Если вы редактируете свой curl-ca-bundle.crt, вы должны быть уверены в своих линейных окончаниях. В случае с curl-ca-bundle вы должны использовать линейные окончания в стиле Linux.

> git ls-remote --tags --heads https://github.com/oblador/angular-scroll.git
fatal: unable to access 'https://github.com/oblador/angular-scroll.git/': error setting certificate verify locations:
  CAfile: C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt
  CApath: none

Вы можете использовать notepad++ для преобразования строк в Linux (перевод строки).

Для пользователей MinGit в Windows 10 :

Вам нужно будет внести небольшие изменения в ответ @mstrap .

      git config --system http.sslcainfo "<PATH-TO-MINGIT>\mingw64\ssl\certs\ca-bundle.crt"

Если кто-то еще сталкивается с этой проблемой в Git для Windows и не имеет curl-ca-bundle.crt в любом месте вашей системы, даже после переустановки, я следовал этому процессу:

  1. Загрузите последнюю версию curl здесь: curl download mirror
  2. Извлечь и перейти к curl-**.**.*/lib в командной строке
  3. Бежать ./mk-ca-bundle.prl
  4. копия ca-bundle.crt к вашему пути git и обновите конфигурацию как перечислено в других ответах

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

В Linux у меня была эта ошибка, и я исправил ее, запустив sudo update-ca-certificates,

Я решил эту проблему на Windows Server 2016, переустановив ее и выбрав "родную библиотеку безопасного канала Windows" на этапе установки "Выбор транспортного сервера HTTPS".

Для меня то, что решило проблему, было то, когда на моем окне Windows 10 я попытался удалить git и повторно установить, используя Windows Cmd по умолчанию, а не Git Bash

Откройте CMD и запустите следующее

//Once installed try to resintall the bin folder 
git config --system http.sslcainfo \bin/curl-ca-bundle.crt

//disable ssl verification
git config --global http.sslverify "false"

//Then try to clone repo again
git clone git@github.com:account/someproject.git

Я получил эту ошибку после перемещения Git через жесткие диски. Удаление и переустановка в новом месте исправленных вещей

Решение, которое работает для меня в Windows 64bit заключается в следующем

git config --system http.sslverify false

Я смог решить эту проблему с помощью следующей команды.

git config --system http.sslverify false

В git для Windows вы также можете переустановить и выбрать метод проверки собственных сертификатов Windows (OpenSSL по умолчанию). Это позволит пропустить проверку OpenSSL и вместо этого использовать родную проверку Windows, которая не требует поддержки отдельного инструмента (OpenSSL) и сертификатов.

Отлично сработало для меня:)

Следующая команда

git clone git://github.com/username/projectname.git

работал для моих нужд, но я предполагаю, что вы хотите больше, чем доступ только для чтения, верно?

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