Github: lỗi nhân bản kho lưu trữ riêng của tôi


155

Tôi đang cố gắng sao chép dự án GitHub của mình bằng URL https, nhưng không thành công do lỗi:

$ 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

Tôi đang làm gì sai?

Câu trả lời:


289

Tôi đã thấy điều này trên Windows, với msysgit 1.7.2.3. Bạn phải sửa đường dẫn đến bin / curl-ca-bundle.crt . Tôi đã phải xác định đường dẫn tuyệt đối, sử dụng dấu gạch chéo ngược:

git config --system http.sslcainfo "C: \ Chương trình tập tin (x86) \ git \ bin \ curl-ca-bundle.crt"

hoặc - không thực sự được khuyến nghị - bạn có thể chọn tắt hoàn toàn kiểm tra SSL bằng cách thực hiện:

cấu hình git - hệ thống http.sslverify sai

Đối với cả hai trường hợp, điều này sẽ dẫn đến thay đổi tệp [git-install-dir] / etc / gitconfig, có thể được chỉnh sửa trực tiếp.

(Các giải pháp ban đầu được tìm thấy tại http://github.com/blog/642-smart-http-support )


1
Trong trường hợp của tôi, tôi cần sử dụng dấu phân cách thư mục cho windows, ý tôi là, tôi phải sử dụng "\" (windows) thay vì "/" (unix) để tách các thư mục trong đường dẫn.
Victor

Vì bài viết gốc dưới đây hoạt động với tôi Hãy dùng thử trên kho lưu trữ công cộng: $ git clone github.com/schacon/grack.git Đối với các repos riêng hoặc để có quyền truy cập vào kho lưu trữ của bạn, bạn có thể sao chép theo cách này: $ git clone username@github.com/username/project.git Cảm ơn :)
J4cK

13
Đối với các tài liệu tham khảo trong tương lai, đường dẫn dường như đã thay đổi đối với tôi thành "C: \ Program Files (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt"
Ben

3
Đường dẫn trên máy 64 bit của tôi là "C: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi 16/03/18

3
Trên máy 64 bit của tôi, git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"đã hoạt động, không thể nói tại sao toàn cầu trong khi hệ thống bị lỗi.
semako

76

Tôi đã giải quyết vấn đề cài đặt Git từ: https://git-for-windows.github.io/ Xác định vị trí đường dẫn tệp cert:

D: \ Tệp chương trình \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt

Định cấu hình đường dẫn Git:

git config --system http.sslcainfo "D: \ Chương trình tập tin \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"

Thử lại


13
Tôi nhận được error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Ran "C:\Program Files\Git\git-bash.exe"là quản trị viên và thử lại và nó đã làm việc. Cảm ơn!
AXO

Giải thích rõ hơn
Kasim Rangwala

2
Tôi vừa cài đặt Git cho Windows 2.13.2 và gặp phải sự cố này khi cố gắng đẩy sang điều khiển từ xa. Tôi tìm thấy tệp cert ở một vị trí tương tự:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi

1
Điều này làm việc cho tôi, tôi chỉ cài đặt Git bằng liên kết bạn đã chia sẻ và nó đã giải quyết nó cho tôi, Cảm ơn
Sunny Okoro Awa

Tôi đã cài đặt GIT trên một thư mục được chỉ định trong thời gian cài đặt, do đó tôi phải chỉ định đường dẫn MINGW64 chính xác theo cài đặt đó
gargkshitiz

21

Nếu bạn sử dụng MSYS2 ...

Chỉ cần cài đặt các gói chứng chỉ với các lệnh sau:

32 bit

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

64 bit

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

1
Cộng với một. Cảm ơn. Đừng nhớ rằng phải thực hiện msys2 32 bit này, nhưng hoàn cảnh có thể khác nhau.
bvj

1
Cảm ơn bạn, tôi xác nhận đây là việc cần làm khi sử dụng msys2 64 bit :-D
FabienRohrer

1
Nó có thể xảy ra tệp /usr/ssl/certs/ca-bundle.crt trống, chỉ cần cài đặt lại chứng chỉ ca một lần nữa
Daniel YC Lin

Không dành cho Windows: $ pacman -S mingw-w64-x86_64-ca-
cert ca

@Javix Đó là lý do tại sao nó nói "Nếu bạn sử dụng MSYS2". Lệnh pacman không có sẵn theo mặc định trên Windows, nhưng nó có sẵn nếu bạn đã cài đặt MSYS2.
CoolOppo

12

Nếu bạn đang sử dụng Cygwin, bạn có thể cài đặt gói ca-chứng chỉ với apt-cyg :

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

Làm cách nào để cài đặt gói cygwin từ dòng lệnh?


1
Chỉ trích. Tôi đã tìm kiếm rất lâu. Điều này cũng làm việc trên mac. Cảm ơn bạn đã chia sẻ.
Phlow

1
Trên Cygwin, nó hoạt động với tôigit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras

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

Sẽ giải quyết vấn đề. Sau đó, một cửa sổ bật lên xuất hiện để nhập tên người dùng và mật khẩu của bạn


5
Bạn có thể muốn đề cập đến sự phân nhánh bảo mật của điều này. Đây dường như là một ý tưởng khủng khiếp, đặc biệt là trên toàn cầu.
C. Helling

Đã làm việc trên HPC cho tôi
mmann1123

6

GIẢI QUYẾT: Tôi gặp lỗi này khi cài đặt bản cập nhật cho trình cài đặt Git windows. Điều xảy ra là tôi đã không cài đặt nó với quyền quản trị viên, vì vậy Git đã được cài đặt trong "C: \ Users \ my_name \ AppData \ Local \ Programs" thay vì "C: \ Program Files". cài đặt lại Git khi quản trị viên được phép đặt nó vào C: \ chương trình Tệp và mọi thứ lại hoạt động tốt!


Để biết giá trị của nó, việc gỡ cài đặt và cài đặt lại GitHub Desktop cũng đã sửa lỗi này cho tôi, mặc dù nó vẫn sử dụng thư mục AppData.
Ben Collier

5

Điều này làm việc cho tôi (Tôi đang sử dụng Manjaro linux). Tôi chạy cmd để xem chứng chỉ ca:

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

Nhưng thực sự tôi đã tìm thấy các chứng chỉ tại đường dẫn:

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

Sau đó thêm cấu hình vào ~ / .gitconfig (nếu không tồn tại, tạo nó):

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

Nó hoạt động!

.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
Làm việc cho tôi trên archlinux!
lucasem

4

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

Những công việc này. Bạn không cần phải đưa ra con đường đầy đủ.


3

Tôi phải đối mặt với điều này trong khi git kéo. Đối với tôi đã chỉnh sửa tập tin cấu hình git toàn cầu mà đã khắc phục vấn đề.

Goto thư mục nhà của bạn và mở tập tin .gitconfig. Thông thường C: \ Users \ .gitconfig

Nếu không có tập tin, hãy tạo nó

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

Ở đó bạn phải đưa ra đường dẫn cài đặt git của riêng bạn. Tôi đã sử dụng phiên bản di động của git ở đây.

Sau đó git clone / kéo nó sẽ hoạt động.


1
Bạn cần sử dụng ký tự thoát kép:E:\\systools...
HappyCactus

NHƯNG, hãy chắc chắn KHÔNG bọc đường dẫn trong dấu ngoặc kép. siêu phản trực quan. "C:\\folder\\file"là xấu, C:\\folder\\filelà tốt Tôi muốn giờ của tôi trở lại.
hoài nghi

2

Nếu bạn đang sử dụng trình vỏ lệnh Git cài đặt với ứng dụng GitHub cho Windows thì vấn đề này và nhiều vấn đề khác có thể hiển thị sau khi cập nhật. Chỉ cần khởi động ứng dụng cửa sổ Git Hub và tắt nó lại. Vỏ sau đó sẽ hoạt động tốt trở lại. Vấn đề là bản cập nhật không hoàn thành cho đến khi ứng dụng windows được chạy. Chỉ sử dụng shell trên nó không kích hoạt cập nhật hoàn tất.


2

Tôi đã thấy điều này trên Github cho Windows.

Tôi khuyên bạn nên gỡ cài đặt Github cho Windows và cài đặt lại.

Trước đây, tôi đã thử một vài cách mà không thành công, nhưng giải pháp này hiệu quả với tôi!


1

Trên Windows sử dụng msysgit tôi đã gặp lỗi này và nguyên nhân là do tôi bổ sung chứng chỉ proxy công ty của chúng tôi.

Nếu bạn chỉnh sửa curl-ca-bundle.crt của bạn, bạn phải chắc chắn về các dòng của bạn. Trong trường hợp gói curl-ca-bundle, bạn phải sử dụng các dòng phụ kiểu 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

Bạn có thể sử dụng notepad ++ để chuyển đổi các dòng sản phẩm sang Linux (linefeed).


1

Mặt khác, vấn đề này có thể xảy ra trong Windows nếu người dùng đang cố gắng sử dụng git khác với người dùng đã cài đặt nó. Lỗi có thể chỉ ra rằng git không thể truy cập các tệp chứng chỉ. Cài đặt git với tư cách quản trị viên và sử dụng câu trả lời của @ rogertoday đã giải quyết vấn đề của tôi.


1

Tôi đã tìm thấy một giải pháp tốt để thêm / cập nhật chứng chỉ CA trên RHEL / CentOS 6 , đây là nguyên nhân gốc được báo cáo.

Kể từ khi chúng trở thành các bản phát hành lỗi thời, chính quyền cacert trong hệ thống đó đã không được cập nhật cho đến khi thực hiện lệnh sudo yum update.

Không nhận ra sự cố cho đến khi chế độ GIT_CURL_VERBOSE hiển thị sự cố đường dẫn cacert.


0

Trên Linux, tôi đã gặp lỗi này và sửa nó bằng cách chạy sudo update-ca-certificates.


Bạn nên giải thích những gì lệnh này làm và tại sao điều này giúp. Đăng các lệnh thô mà không cần giải thích không phải là một ý tưởng tốt, đặc biệt nếu bạn cần quyền truy cập root.
Đậu phộng

0

Đối với tôi, vấn đề đã giải quyết là khi trên hộp windows 10 của tôi, tôi đã thử gỡ cài đặt git và đặt lại, sử dụng Windows Cmd như mặc định chứ không phải Git Bash

Mở CMD và chạy như sau

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

Nếu bất kỳ ai khác đang gặp phải vấn đề này trong Git cho Windows và không có curl-ca-bundle.crtbất kỳ nơi nào trên hệ thống của bạn ngay cả sau khi cài đặt lại, đây là quá trình tôi đã làm theo:

  1. Tải xuống phiên bản mới nhất của curl tại đây: curl download mirror
  2. Trích xuất và điều hướng đến curl-**.**.*/libtrong dòng lệnh
  3. Chạy ./mk-ca-bundle.prl
  4. Sao chép ca-bundle.crtvào đường dẫn git của bạn và cập nhật cấu hình như được liệt kê trong các câu trả lời khác

Hét lên ý chính này để giúp tôi hoàn thành việc cài đặt.


0

Tôi đã giải quyết vấn đề này trên Windows Server 2016 bằng cách cài đặt lại và bằng cách chọn "thư viện Windows Secure Channel gốc" trong bước cài đặt "Chọn phụ trợ truyền tải HTTPS".


0

Giải pháp phù hợp với tôi trong windows 64 bit là như sau

cấu hình git - hệ thống http.sslverify sai


0

Trong trường hợp win10 của tôi, tôi có hai phiên bản của.gitconfig

  • cái đầu tiên là trong C:\Program Files\Git\etc
  • thứ hai là trong C:\Users\<user>

Lệnh

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

thực sự thay đổi C:\Program Files\Git\etc, nhưng git bằng cách nào đó sử dụng cấu hình trongC:\Users\<user>

Vì vậy, với notepad tôi đã thay đổi cái thứ hai .gitconfigvà git cuối cùng đã lấy đúng cấu hình và hoạt động.


-1

Tôi đã có thể giải quyết vấn đề này bằng lệnh sau.

cấu hình git - hệ thống http.sslverify sai


Câu trả lời này sẽ tốt hơn nếu nó thảo luận về các phân nhánh bảo mật của cài đặt này và cung cấp các cách khác để giải quyết vấn đề. Mặc dù vậy, câu trả lời được chấp nhận hiện tại thực hiện điều này và hơn thế nữa ...
chwarr

-1

Tôi đã nhận được lỗi này sau khi di chuyển git trên các ổ đĩa cứng. Xóa và cài đặt lại ở vị trí mới đã sửa


-1

Trên git cho Windows, bạn cũng có thể cài đặt lại và chọn phương thức xác thực chứng chỉ gốc Windows (OpenSSL là mặc định). Điều này sẽ bỏ qua xác minh OpenSSL và thay vào đó sử dụng bản gốc Windows, không yêu cầu duy trì một công cụ riêng biệt (OpenSSL) và chứng chỉ.

Làm việc hoàn hảo cho tôi :)


-2

Lệnh sau

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

làm việc cho nhu cầu của tôi, nhưng tôi cho rằng bạn muốn nhiều hơn truy cập chỉ đọc, phải không?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.