Github: Özel veri havuzumu kopyalarken hata oluştu


155

Https-URL kullanarak GitHub projemi klonlamaya çalışıyorum, ancak bir hata ile başarısız:

$ 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

Neyi yanlış yapıyorum?

Yanıtlar:


290

Bunu Windows'ta msysgit 1.7.2.3 ile gördüm. Bin / curl-ca-bundle.crt yolunu düzeltmeniz gerekir . Ters eğik çizgiler kullanarak mutlak yolu belirtmek zorunda kaldım:

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

veya - gerçekten önerilmez - şu şekilde çalışarak SSL kontrollerini tamamen kapatmayı seçebilirsiniz:

git config --sistem http.sslverify false

Her iki durumda da, bu, doğrudan da düzenlenebilen [git-install-dir] / etc / gitconfig dosyasında değişikliklere neden olacaktır.

(Http://github.com/blog/642-smart-http-support adresinde bulunan orijinal çözümler )


1
Benim durumumda windows için dizin sınırlayıcı kullanmak gerekiyordu, yani, yoldaki dizinleri ayırmak için "/" (unix) yerine "\" (windows) kullanmak zorundayım.
Victor

Aşağıdaki orijinal yazı benim için çalışıyor gibi Genel bir depoda deneyin: $ git clone github.com/schacon/grack.git Özel depolar için veya deponuzda push erişimine sahip olmak için şu şekilde klonlayabilirsiniz: $ git clone username@github.com/username/project.git Teşekkürler :)
J4cK

13
Gelecekteki referanslar için yolun benim için "C: \ Program Files (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt" olarak değiştiği görülüyor
Ben

3
64 bit makinemdeki yol "C: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi

3
64 bit makinemde git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"çalıştı, sistem başarısız olurken neden küresel olduğunu söyleyemem.
semako

76

Git'i yüklerken sorunu çözdüm: https://git-for-windows.github.io/ Sertifika dosyası yolunu bulun:

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

Git yolunu yapılandırın:

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

Tekrar deneyin


13
Anladım error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. "C:\Program Files\Git\git-bash.exe"Yönetici olarak koştu ve tekrar denedi ve işe yaradı. Teşekkürler!
AXO

Daha İyi Açıklama
Kasim Rangwala

2
Git için Windows 2.13.2'yi yeni yükledim ve uzaktan kumandayı zorlamaya çalışırken bu sorunla karşılaştım. Sertifika dosyasının benzer bir konumda olduğunu C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
gördüm

1
Bu benim için çalıştı, ben sadece u paylaşılan bağlantıyı kullanarak Git yükledim ve bu benim için çözdü, Teşekkürler
Sunny Okoro Awa

Yükleme süresi boyunca GIT'i belirli bir dizine yükledim, bu nedenle bu yüklemeye göre doğru MINGW64 yolunu belirtmek zorunda kaldım
gargkshitiz

21

MSYS2 kullanıyorsanız ...

Sertifika paketlerini aşağıdaki komutlarla kurmanız yeterlidir:

32 bit

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

64 bit

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

1
Artı bir. Teşekkürler. Bu msys2 32bit'i yapmak zorunda olduğunuzu hatırlamayın, ancak koşullar farklı olabilir.
bvj

1
Teşekkür ederim, bu msys2 64 bit kullanarak yapmak için bir şey olduğunu onaylamak :-D
FabienRohrer

1
/Usr/ssl/certs/ca-bundle.crt dosyası boş olabilir, sadece ca sertifikalarını yeniden yükleyin
Daniel YC Lin

Windows için değil: $ pacman -S mingw-w64-x86_64-ca-sertifikalar ca-sertifikalar bash: pacman: komut bulunamadı
belgoros

@Javix "MSYS2 kullanıyorsanız" yazıyor. Pacman komutu Windows'ta varsayılan olarak kullanılamaz, ancak MSYS2 yüklüyse kullanılabilir.
CoolOppo

12

Cygwin kullanıyorsanız, ca-certificate paketini apt-cyg ile yükleyebilirsiniz :

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

Komut satırından bir cygwin paketini nasıl kurabilirim?


1
Lanet olsun. Çok uzun aradım. Bu mac üzerinde de çalıştı. Paylaşım için teşekkürler.
Phlow

1
git config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
Cygwin'de

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

Sorunu çözecek. Bundan sonra kullanıcı adınızı ve şifrenizi girmek için bir Açılır pencere görüntülenir


5
Bunun güvenlik sonuçlarından bahsetmek isteyebilirsiniz. Bu, özellikle küresel olarak, korkunç bir fikir gibi görünüyor.
C. Helling

Benim için HPC üzerinde çalıştı
mmann1123 14:19

6

ÇÖZÜLDÜ: Git windows yükleyicisine bir güncelleştirme yüklediğimde bu hatayı aldım. Ne oldu yönetici hakları ile yüklemedim, bu yüzden Git "C: \ program Files" yerine "C: \ Kullanıcılar \ benim_adı \ AppData \ Local \ Programs" içine kuruldu. Git'i yönetici olarak yeniden yükleyerek C: \ program Files'a koymasına izin verin ve her şey yolunda gitti!


Değeri ne olursa olsun, hala AppData klasörünü kullanmasına rağmen, GitHub Desktop'ı kaldırıp yeniden yüklemek benim için de düzeltildi.
Ben Collier

5

Bu benim için çalıştı (Manjaro linux kullanıyorum). Ca sertifikalarını görüntülemek için cmd'yi çalıştırıyorum:

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

Ama aslında sertifikaları yolda buldum:

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

Sonra yapılandırmayı ~ / .gitconfig dosyasına ekleyin (yoksa, oluşturun):

**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>

İşe yarıyor!

.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'da benim için çalıştı!
lucasem

4

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

Bu çalışıyor. Tam yol vermek zorunda değilsiniz.


3

Git çekerken bununla yüzleştim. Benim için sorunu gidermek için global git config dosyasını düzenledi.

Ana klasörünüze gidin ve .gitconfig dosyasını açın. Genellikle C: \ Kullanıcılar \ .gitconfig

Dosya orada değilse oluşturun

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

Orada kendi git kurulum yolunu vermelisin. Burada git'in taşınabilir sürümünü kullandım.

Sonra klon git / çek işe yarayacak.


1
Çift kaçış karakterleri kullanmanız gerekir:E:\\systools...
HappyCactus

AMA, yolu tırnak işaretleri içine almadığınızdan emin olun. süper karşı sezgisel. "C:\\folder\\file"kötü, C:\\folder\\fileiyi. Saatimi geri istiyorum.
increddibelly

2

Windows için GitHub uygulamasıyla birlikte yüklenen Git komut kabuğunu kullanıyorsanız, bu ve diğer çeşitli sorunlar bir güncellemeden sonra gösterilebilir. Git Hub windows uygulamasını başlatın ve tekrar kapatın. Kabuk daha sonra tekrar çalışır. Sorun, Windows uygulaması çalıştırılıncaya kadar güncelleştirmenin tamamlanmamasıdır. Sadece kabuğu kullanarak güncellemeyi tamamlamak için tetiklemez.


2

Bunu Windows için Github'ımda gördüm.

Windows için Github'ı kaldırıp tekrar yüklemenizi öneririm.

Bundan önce, başarılı olmadan birkaç yol denedim, ancak bu çözüm benim için çalıştı!


1

Windows'ta msysgit kullanarak bu hatayı aldım ve nedeni kurumsal proxy sertifikalarımıza eklemelerim oldu.

Curl-ca-bundle.crt dosyanızı düzenlerseniz, satır sonlarınızdan emin olmanız gerekir. Curl-ca-bundle durumunda Linux-Style satır sonlarını kullanmanız gerekir.

> 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

Satır sonlarını Linux'a (satır besleme) dönüştürmek için notepad ++ kullanabilirsiniz.


1

Bir yan notta, git'i kullanmaya çalışan kullanıcı onu yükleyen kullanıcıdan farklıysa, Windows'da bu sorun oluşabilir. Hata, git'in sertifika dosyalarına erişemediğini gösterebilir. Git'i yönetici olarak yüklemek ve @ rogertoday'ın yanıtını kullanmak sorunumu çözdü.



0

Linux'ta bu hatayı aldım ve çalıştırarak düzelttim sudo update-ca-certificates.


Bu komutun ne yaptığını ve bunun neden yardımcı olduğunu açıklamalısınız. Ham komutları açıklama yapmadan göndermek, özellikle de root erişimine ihtiyacınız varsa, iyi bir fikir değildir.
Fıstık

0

Benim için problemi çözen şey, Windows 10 kutumdayken Git Bash'ı değil, varsayılan olarak Windows Cmd'i kullanarak git ve reçine düzeltmeyi kaldırmayı denedim.

CMD'yi açın ve aşağıdakileri çalıştırın

//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

Windows için Git'te bu sorunla karşılaşan başka biri varsa ve curl-ca-bundle.crtyeniden yükledikten sonra bile sisteminizde herhangi bir yer yoksa, izlediğim süreç budur:

  1. Curl'un en son sürümünü buradan indirin: curl download mirror
  2. curl-**.**.*/libKomut satırında ayıkla ve şuraya git
  3. Çalıştırmak ./mk-ca-bundle.prl
  4. ca-bundle.crtGit yolunuza kopyalayın ve yapılandırmayı diğer yanıtlarda listelendiği şekilde güncelleyin

Kurulumu tamamlamama yardımcı olması için bu özete bağır .


0

Bu sorunu bir Windows Server 2016'da yeniden yükleyerek ve "HTTPS aktarım arka ucunu seçme" yükleme adımında "yerel Windows Güvenli Kanal kitaplığı" nı seçerek çözdüm.


0

Windows 64 bit benim için çalışan çözüm aşağıdaki

git config --sistem http.sslverify false


0

Benim win10 davamın iki sürümü var.gitconfig

  • ilki içinde C:\Program Files\Git\etc
  • ikincisi C:\Users\<user>

Komuta

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

gerçekten değişiklikler yapar C:\Program Files\Git\etc, ancak git bir şekilde config kullanırC:\Users\<user>

Yani not defteri ile ikincisini değiştirdim .gitconfigve git sonunda doğru yapılandırmayı aldı ve çalışmaya başladı.


-1

Bu sorunu aşağıdaki komutla çözebildim.

git config --sistem http.sslverify false


Bu ayar, bu ortamın güvenlik sonuçlarını tartışıp sorunu çözmenin başka yollarını sağlasaydı daha iyi olurdu. Rağmen, mevcut kabul edilen cevap bunu ve daha fazlasını yapar ...
chwarr

-1

Git'i sabit sürücüler arasında taşıdıktan sonra bu hatayı aldım. Yeni konumdaki şeyleri silme ve yeniden yükleme


-1

Windows için git'te Windows yerel sertifika doğrulama yöntemini de yeniden yükleyebilir ve seçebilirsiniz (OpenSSL varsayılan değerdir). Bu, OpenSSL doğrulamasını atlayacak ve bunun yerine ayrı bir araç (OpenSSL) ve sertifikaların bakımını gerektirmeyen Windows yerel olanını kullanacaktır.

Benim için mükemmel çalıştı :)


-2

Aşağıdaki komut

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

ihtiyaçlarım için çalıştı, ancak salt okunur erişimden daha fazlasını istediğinizi varsayıyorum, değil mi?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.