Ответ 1
Мне также пришлось столкнуться с этой проблемой в Windows и запустить git с помощью gitbash. Я просто переустановил gitbash, и gitbash автоматически управлял сертификатом 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
Я получаю эту ошибку, когда я вытягиваю или нажимаю свой код.
Пожалуйста, помогите мне исправить это.
Мне также пришлось столкнуться с этой проблемой в 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 для окон. Я использую 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 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, вы можете найти сертификат: ca-bundle.crt.
Затем откройте консоль, выполните: git config --system http.sslcainfo "D:\SDK\Git\usr\ssl\certscabundle.crt"
Это будет работать при перемещении из GIT 2.x клиентов в 2.5.x:
Похоже, что после установки новой версии клиента GIT он меняет путь, по которому он ищет сертификаты, из следующего:
C:\Program Files\Git\mingw64
примерно так:
C:\Program Files\Git\mingw64\libexec
Чтобы исправить это, просто скопируйте папку "ssl" в новое место, и это будет работать как прелесть!
Перейдите в каталог git и переместите папку mingw64/ssl в mingw64/libexec/ssl.
Для будущих читателей:
У меня возникла эта проблема после установки пакетов devel на cygwin.
Я перепробовал все исправления в этой теме, но ничего не получалось
Затем я столкнулся с этой веткой на github
Я обнаружил, где в gitconfig указывается CAPATH, и удалил эту спецификацию https, и это решило мою проблему.
У меня такая же проблема после моего последнего обновления cygwin после установки Windows 10.
Не удалось выполнить команду update-ca-trust
во время установки.
Похоже, что владелец группы для папки сертификата был поврежден.
Несколько радикальным решением было удалить /etc/group
, оказалось, что cygwin может напрямую запрашивать окна о правах группы.
Решение найдено на http://zaunerc.blogspot.se/2016/01/cygwin-mapping-windows-sids-to-posix.html
Я нашел сертификат ssl по адресу:
C:\Users\[USERNAME]\AppData\Local\GitHub\PortableGit_[portable code]\usr\ssl\certs
то вы можете следовать решению CodeWizard i.e.:
// Add the certificate to your configuration file
git config --system http.sslcainfo "[LOCATION_SPECIFIED_ABOVE]/cabundle.crt"
В текущей сборке 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 с ошибкой доступа, вместо того, чтобы запрашивать другие учетные данные.
Используя Intellij и git -sdk-64, и сначала выбрал git-sdk-64\mingw64\bin\git.exe
, чтобы получить эту проблему, а затем при переключении на git-sdk-64\cmd\git.exe
он вычислил расположение файла сертификата отдельно, и никакая другая конфигурация не нужна. (не использовали git config --global http.sslcainfo ...
)
Я нашел следующие шаги, которые полезны при устранении проблемы на моем конце для Windows 10:
Выполнение удаления git.
Однако утилита git не выполняет чистую работу. Поэтому вам может потребоваться удалить каталог git в C:\Users [My name]\AppData\Local\Programs\
После этого новая установка git должна установить его установить в каталог C:\Program Files\Git, на который указывает файл конфигурации, чтобы прочитать сертификат ssl.
У меня была такая же ошибка, и я исправил ее переустановку git в пути по умолчанию:
C:\Program Files\Git
Что все
У меня такое же сообщение об ошибке, но в моем случае это было потому, что я изменил настройки github, чтобы использовать ssh вместо https.
И репозиторий с проблемой был клонирован с https после удаления удаленного и повторного добавления его с ssh, который работает как ожидалось.
$git remote remove origin
$git remote add origin [email protected]:UserName/repo.git
Затем git remote show origin
правильно показывает пульт.
Я получил ту же ошибку в Windows 7. Установил, что путь сертификата, упомянутый в ошибке, не существует. Вместо... \mingw32\usr\ssl... файл cert находился в... \mingw2\ssl... Поэтому я создал папку usr вручную и переместил все дерево ssl в usr. Это устранило проблему.
Благодаря https://github.com/npm/npm/issues/1484 git config --global http.sslverify "false"
решит проблему
Я столкнулся с тем же сообщением об ошибке, но, клонируя репозиторий github, к сожалению, установка http.sslcainfo
не очень помогла. Так как я оказался за корпоративным прокси-сервером, настройка http.proxy
исправила это для меня.
В этой теме много ответов слепых, ведущих, слепых. Я просто еще один слепой человек, но у меня была та же проблема, и я решил ее, следуя этой простой статье. Как я понимаю первоначальный вопрос, 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
У меня похожая проблема, но удаление gitbash и переустановка в систему, работало для меня.