2014-10-27 15 views
7

Khi lấy với git trên Cygwin bạn nhận được:Làm thế nào để thêm một Enterprise Certificate Authority (CA) để git trên Cygwin (và một số distro Linux)

Fetching origin 
fatal: unable to access 'https://.../...git': SSL certificate problem: self signed certificate in certificate chain 
error: Could not fetch origin 

Giấy chứng nhận đã được thêm vào /etc/ssl/certs/ca-bundle.crtother bundle files, nhưng trên cập nhật Cygwin tiếp theo vấn đề xuất hiện lại.

Trả lời

10

git-remote-https sẽ đọc các tập tin sau đây để chứng nhận ca:

/etc/ssl/certs/ca-bundle.crt 
/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt 

Nếu bạn chỉnh sửa những tập tin này, họ sẽ được ghi đè mỗi lần cài đặt Cygwin được điều hành và có một bản cập nhật cho gói ca-certificates.

Các giải pháp đúng/đúng là thêm chứng chỉ vào thư mục nhận và chạy các script pickup, cập nhật-ca-tin cậy:

curl -sL http://ca.pdinc.us > /etc/pki/ca-trust/source/anchors/ca.pdinc.us.pem \ 
&& update-ca-trust 

Các bài cài đặt kịch bản cho các gói ca-chứng chỉ sẽ tự động chạy lại tập lệnh cập nhật-ca-tin cậy trên mỗi lần nâng cấp. Để biết thêm thông tin:

man update-ca-trust 
+0

Lệnh 'curl -sL' phải làm gì? Đó là URL http, vì vậy rõ ràng không nhận được chuỗi chứng chỉ như mong đợi từ ngữ cảnh. –

+0

Trong phiên bản hiện tại, 'git-remote-https' đọc chứng chỉ từ'/mingw64/ssl/certs/ca-bundle.crt', vì đó là cách nó được cấu hình trong '/ c/ProgramData/Git/config'. Không phải '/ mingw64/bin/update-ca-trust' và'/usr/bin/update-ca-trust' cập nhật tệp đó, vì vậy tập lệnh đó không hữu ích. Tôi chưa tìm thấy cái nào. –

+0

@JanHudec Kể từ ngày cập nhật hôm nay, và kể từ năm 2014 dường như không phải như vậy. Những gì git --version (git phiên bản 2.8.3) và uname -a (CYGWIN_NT-6.1-WOW black7 2.6.1 (0.305/5/3) 2016-12-16 11:50 i686 Cygwin) là bạn trên? –

Các vấn đề liên quan