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


155

Я пытаюсь клонировать свой проект 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

Что я делаю не так?

Ответы:


289

Я видел это на 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 )


1
В моем случае мне нужно было использовать разделитель каталогов для окон, я имею в виду, я должен использовать "\" (windows) вместо "/" (unix) для разделения каталогов в пути.
Виктор

Как оригинальная запись, написанная ниже, работает для меня. Попробуйте ее в общедоступном репозитории: $ git clone github.com/schacon/grack.git Для частных репозиториев или для принудительного доступа к вашему репозиторию вы можете клонировать следующим образом: $ git clone username@github.com/username/project.git Спасибо :)
J4cK

13
Для будущих ссылок путь, по-видимому, для меня изменился на «C: \ Program Files (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt»
Бен,

3
Путь на моей 64-битной машине: «C: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt»
Камараджу Кусуманчи,

3
На моей 64-битной машине git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"работал, не могу сказать, почему глобальный, а система не работает.
Семако

76

Я решил проблему с установкой 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"

Попробуй еще раз


13
Я получил error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Запустил "C:\Program Files\Git\git-bash.exe"как администратор и попробовал снова, и это сработало Спасибо!
AXO

Лучшее объяснение
Касим Рангвала

2
Я только что установил Git для Windows 2.13.2 и столкнулся с этой проблемой, пытаясь передать на удаленный компьютер. Я обнаружил, что файл сертификата находился в аналогичном месте:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Саймон Тьюси

1
это сработало для меня, я только установил Git, используя ссылку, которой вы поделились, и это решило это для меня, спасибо
Sunny Okoro Awa

Я установил GIT в указанном каталоге во время установки, поэтому мне пришлось указать правильный путь MINGW64 в соответствии с этой установкой
gargkshitiz

21

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

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

32 бита

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

64 бита

pacman -S mingw-w64-x86_64-ca-certificates ca-certificates

1
Плюс один. Спасибо. Не вспоминайте, что нужно делать это msys2 32bit, но обстоятельства могут отличаться.
Bvj

1
Спасибо, я подтверждаю, что это то, что нужно сделать, используя msys2 64 бита :-D
FabienRohrer

1
Может случиться так, что файл /usr/ssl/certs/ca-bundle.crt пуст, просто переустановите ca-сертификаты еще раз
Даниэль Й.К. Лин

Не для Windows: $ pacman -S mingw-w64-x86_64-ca-сертификаты ca-сертификаты bash: pacman: команда не найдена
belgoros

@Javix Вот почему он говорит: «Если вы используете MSYS2». Команда pacman по умолчанию недоступна в Windows, но она доступна, если у вас установлен MSYS2.
CoolOppo

12

Если вы используете 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 из командной строки?


1
Черт. Я искал так долго. Это сработало и на Mac. Спасибо, что поделились.
Флоу

1
На Cygwin это сработало для меняgit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras

9
git config --global http.sslverify "false" 

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


5
Вы могли бы упомянуть последствия безопасности этого. Это кажется ужасной идеей, особенно в глобальном масштабе.
С. Хеллинг

Работал на HPC для меня
mmann1123

6

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


Что бы это ни стоило, удаление и переустановка GitHub Desktop исправили это и для меня, несмотря на то, что оно все еще использует папку AppData.
Бен Коллиер

5

Это сработало для меня (я использую 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(-)

1
Работал для меня на archlinux!
lucasem

4

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

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


3

Я столкнулся с этим, пока 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 это будет работать.


1
Вам нужно использовать двойные escape-символы:E:\\systools...
HappyCactus

НО, обязательно НЕ оборачивайте путь в кавычки. супер-нелогичный. "C:\\folder\\file"это плохо, C:\\folder\\fileэто хорошо Я хочу, чтобы мой час вернулся.
невероятно

2

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


2

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

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

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


1

В 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 (перевод строки).


1

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


1

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

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

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


0

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


Вы должны объяснить, что делает эта команда и почему это помогает. Публикация необработанных команд без объяснения не является хорошей идеей, особенно если вам нужен root-доступ.
арахис

0

Для меня то, что решило проблему, было то, когда на моем окне 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

0

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

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

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


0

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



0

В моем случае 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 наконец-то принял правильную конфигурацию и начал работать.


-1

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

git config --system http.sslverify false


Этот ответ был бы лучше, если бы он обсуждал последствия безопасности этого параметра и предоставил также другие способы решения проблемы. Хотя текущий принятый ответ делает это и многое другое ...
Chwarr

-1

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


-1

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

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


-2

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.