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 / ขด-CA-bundle.crt ฉันต้องระบุพา ธ สัมบูรณ์โดยใช้แบ็กสแลช:

git config --system http.sslcainfo "ไฟล์ C: \ Program (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 ฉันหมายถึงฉันต้องใช้ "\" (windows) แทน "/" (unix) เพื่อแยกไดเรกทอรีในเส้นทาง
วิกเตอร์

เนื่องจากโพสต์ต้นฉบับด้านล่างใช้งานได้สำหรับฉันลองใช้กับที่เก็บสาธารณะ: $ git clone github.com/schacon/grack.gitสำหรับ repos ส่วนตัวหรือมีการเข้าถึงแบบพุชบน repository ของคุณคุณสามารถโคลนได้ด้วยวิธีนี้: $ git clone ชื่อผู้ใช้
@github.com/username/project.git

13
สำหรับการอ้างอิงในอนาคตดูเหมือนว่าฉันจะเปลี่ยนเป็น "C: \ Program Files (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt"
Ben

3
เส้นทางบนเครื่อง 64 บิตของฉันคือ "C: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi

3
ทำงานบนเครื่อง 64 บิตของฉันgit config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"ทำงานไม่สามารถบอกได้ว่าทำไมถึงเป็นระบบทั่วโลกในขณะที่ระบบล้มเหลว
semako

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

การอธิบายที่ดีขึ้น
Kasim Rangwala

2
ฉันเพิ่งติดตั้ง Git สำหรับ Windows 2.13.2 และพบปัญหานี้พยายามที่จะผลักดันไปยังระยะไกล ฉันพบไฟล์ใบรับรองอยู่ในตำแหน่งที่คล้ายกัน:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi

1
สิ่งนี้ได้ผลสำหรับฉันฉันติดตั้ง Git โดยใช้ลิงก์ u ที่แชร์และแก้ไขให้ฉันแล้วขอบคุณ
ซันนี่ 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 32 บิต แต่สถานการณ์อาจแตกต่างกัน
bvj

1
ขอบคุณฉันยืนยันว่านี่เป็นสิ่งที่ต้องทำโดยใช้ msys2 64 บิต :-D
FabienRohrer

1
มันอาจเกิดขึ้นไฟล์ /usr/ssl/certs/ca-bundle.crt ว่างเปล่าเพียงแค่ติดตั้ง ca-certificate อีกครั้ง
Daniel YC Lin

ไม่ได้สำหรับ Windows: $ pacman -S mingw-w64-x86_64-ca-certificate ca-certificate bash: pacman: ไม่พบคำสั่ง
belgoros

@Javix นั่นทำไมมันบอกว่า "ถ้าคุณใช้ MSYS2" คำสั่ง pacman ไม่สามารถใช้งานได้ตามค่าเริ่มต้นบน Windows แต่จะใช้ได้ถ้าคุณติดตั้ง MSYS2
CoolOppo

12

หากคุณใช้ Cygwin คุณอาจติดตั้งแพ็คเกจca-certificateด้วย 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 ขอบคุณสำหรับการแชร์.
Phlow

1
สำหรับ Cygwin มันใช้งานได้สำหรับฉันgit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras

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

จะแก้ปัญหา หลังจากนั้นหน้าต่างป๊อปอัปจะปรากฏขึ้นเพื่อป้อนชื่อผู้ใช้และรหัสผ่านของคุณ


5
คุณอาจต้องการพูดถึงเรื่องความปลอดภัยของเรื่องนี้ ดูเหมือนว่าเป็นความคิดที่แย่มาก
ซี Helling

ทำงานกับ HPC สำหรับฉัน
mmann1123

6

แก้ไขแล้ว: ฉันได้รับข้อผิดพลาดนี้เมื่อฉันติดตั้งการอัปเดตตัวติดตั้ง Windows Git สิ่งที่เกิดขึ้นคือฉันไม่ได้ติดตั้งด้วยสิทธิ์ของผู้ดูแลระบบดังนั้น Git จึงถูกติดตั้งใน "C: \ Users \ my_name \ AppData \ Local \ Programs" แทนที่จะเป็น "C: \ program Files" ติดตั้งใหม่ Git เป็นผู้ดูแลได้รับอนุญาตให้วางไว้ใน C: \ Program Files และทุกอย่างไปได้ดีอีกครั้ง!


สำหรับสิ่งที่คุ้มค่าการถอนการติดตั้งและติดตั้ง GitHub Desktop ใหม่จะแก้ไขปัญหานี้ให้ฉันด้วยแม้ว่าจะยังใช้โฟลเดอร์ AppData อยู่ก็ตาม
Ben Collier

5

นี้ทำงานให้ฉัน (ฉันใช้ Manjaro ลินุกซ์) ฉันเรียกใช้ 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!
ลูคัส

4

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

วิธีนี้ใช้ได้ผล คุณไม่ต้องให้เส้นทางเต็ม


3

ฉันเผชิญสิ่งนี้ในขณะที่คอมไพล์ดึง สำหรับฉันแก้ไขไฟล์ config git ทั่วโลกที่แก้ไขปัญหา

ไปที่โฟลเดอร์บ้านของคุณและไฟล์ .gitconfig เปิด โดยปกติ C: \ Users \ .gitconfig

หากไฟล์ไม่ได้มีสร้างมันขึ้นมา

[http]
sslcainfo = E: \ SysTools \ Git-1.8.5.2 \ bin \ ขด-CA-bundle.crt

คุณต้องให้เส้นทางการติดตั้งคอมไพล์ของคุณเอง ฉันใช้ git เวอร์ชันพกพาที่นี่

จากนั้นคอมไพล์ git / pull มันจะทำงาน


1
คุณต้องใช้ตัวอักษรคู่หลบหนี:E:\\systools...
HappyCactus

แต่ให้แน่ใจว่าจะไม่ห่อหุ้มเส้นทางด้วยเครื่องหมายคำพูด ซุปเปอร์เคาน์เตอร์ "C:\\folder\\file"ไม่ดีC:\\folder\\fileเป็นสิ่งที่ดี ฉันต้องการกลับชั่วโมงของฉัน
เหลือเชื่อ

2

หากคุณใช้เชลล์คำสั่ง Git ที่ติดตั้งกับแอพ GitHub สำหรับ Windows แสดงว่าปัญหานี้และปัญหาอื่น ๆ อีกมากมายสามารถแสดงได้หลังจากการอัพเดต เพียงเริ่มต้นแอพ Windows Git Hub และปิดลงอีกครั้ง เปลือกจะทำงานตกลงอีกครั้ง ปัญหาคือว่าการปรับปรุงไม่เสร็จสมบูรณ์จนกว่าโปรแกรมหน้าต่างเป็นระยะ เพียงแค่ใช้เชลล์บนตัวมันไม่ได้ทำให้การอัพเดทเสร็จสมบูรณ์


2

ฉันเคยเห็นสิ่งนี้ใน Github ของฉันสำหรับ Windows

ฉันแนะนำให้ถอนการติดตั้ง Github สำหรับ Windows และติดตั้งอีกครั้ง

ก่อนหน้านี้ผมพยายามหลายวิธีที่ไม่ประสบความสำเร็จ แต่การแก้ปัญหานี้ทำงานให้ฉัน!


1

บน Windows โดยใช้ msysgit ฉันพบข้อผิดพลาดนี้และสาเหตุคือการเพิ่มใบรับรองพร็อกซีองค์กรของฉัน

หากคุณแก้ไข curl-ca-bundle.crt คุณต้องแน่ใจเกี่ยวกับรายการโฆษณาของคุณ ในกรณีของ curl-ca-bundle คุณจะต้องใช้ไลน์ไลน์ลินุกซ์สไตล์

> 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 ++ เพื่อแปลง lineendings เป็น Linux (linefeed)


1

ในหมายเหตุด้านปัญหานี้อาจเกิดขึ้นใน Windows หากผู้ใช้ที่พยายามใช้ git นั้นแตกต่างจากผู้ใช้ที่ติดตั้ง ข้อผิดพลาดอาจระบุว่าคอมไพล์ไม่สามารถเข้าถึงไฟล์ใบรับรอง การติดตั้งคอมไพล์ในฐานะผู้ดูแลระบบและการใช้คำตอบของ @ rogertoday สามารถแก้ไขปัญหาของฉันได้


1

ผมพบว่าเป็นทางออกที่ดีสำหรับการเพิ่ม / อัปเดตใบรับรอง CA บน RHEL / CentOS 6ซึ่งเป็นสาเหตุที่มีการรายงานปัญหา

เนื่องจากพวกเขากลายเป็น distros ล้าสมัยเจ้าหน้าที่ cacert sudo yum updateในระบบที่ยังไม่ได้รับการปรับปรุงจนการดำเนินการคำสั่ง

ไม่ได้ตระหนักถึงปัญหาจนกว่าโหมด GIT_CURL_VERBOSE แสดงให้เห็นถึงปัญหาของเส้นทาง cacert


0

บน Linux sudo update-ca-certificatesผมก็มีข้อผิดพลาดนี้และคงได้โดยการเรียกใช้


คุณควรอธิบายว่าคำสั่งนี้ทำอะไรและทำไมจึงช่วยได้ การโพสต์คำสั่งแบบ raw โดยไม่มีคำอธิบายไม่ใช่ความคิดที่ดีโดยเฉพาะถ้าคุณต้องการเข้าถึงรูท
ถั่วลิสง

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. ดาวน์โหลดรุ่นล่าสุดของขดที่นี่: ดาวน์โหลดกระจกขด
  2. แยกและนำทางไปcurl-**.**.*/libในบรรทัดคำสั่ง
  3. วิ่ง ./mk-ca-bundle.prl
  4. คัดลอกca-bundle.crtไปยังเส้นทางคอมไพล์ของคุณและอัปเดตการกำหนดค่าตามที่ระบุไว้ในคำตอบอื่น ๆ

ตะโกนออกไปกระทู้นี้ช่วยฉันได้รับการติดตั้งเสร็จแล้ว


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 ใช้ config ในC:\Users\<user>

ดังนั้นด้วย notepad ผมเปลี่ยนคนที่สอง.gitconfigและคอมไพล์ในที่สุดก็เอาการตั้งค่าที่เหมาะสมและได้ทำงาน


-1

ฉันสามารถแก้ไขปัญหานี้ได้ด้วยคำสั่งต่อไปนี้

git config --system http.sslverify false


คำตอบนี้จะดีกว่าหากกล่าวถึงการรักษาความปลอดภัยของการตั้งค่านี้และให้วิธีอื่นในการแก้ปัญหาเช่นกัน แต่คำตอบที่ได้รับการยอมรับในปัจจุบันไม่นี้และอื่น ๆ ...
chwarr

-1

ฉันได้รับข้อผิดพลาดนี้หลังจากที่ย้ายคอมไพล์ไปยังฮาร์ดไดรฟ์ การลบและติดตั้งใหม่ในตำแหน่งคงที่สิ่งที่คงที่


-1

บน git สำหรับ Windows คุณสามารถติดตั้งใหม่และเลือกวิธีการตรวจสอบใบรับรองเนทิฟ Windows (OpenSSL เป็นค่าเริ่มต้น) สิ่งนี้จะข้ามการตรวจสอบ OpenSSL และใช้ Windows เนทีฟแทนซึ่งไม่จำเป็นต้องมีเครื่องมือแยกต่างหาก (OpenSSL) และใบรับรอง

ทำงานอย่างสมบูรณ์แบบสำหรับฉัน :)


-2

คำสั่งดังต่อไปนี้

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

ทำงานได้ตามความต้องการของฉัน แต่ฉันคิดว่าคุณต้องการมากกว่าการเข้าถึงแบบอ่านอย่างเดียวใช่ไหม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.