2017-08-07 13 views
10

Tôi đang cố gắng sao chép từ Github bằng cách sử dụng cả hai Github Desktop và vỏ git nhưng tiếp tục nhận được lỗi này:Git - Chức năng thu hồi là không thể kiểm tra thu hồi cho chứng chỉ

Cloning into 'C:\Users\John Doe\workspace\MyProject'... 
fatal: unable to access 'https://github.com/JohnDoe/MyProject.git/': 
schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 
The revocation function was unable to check revocation for the certificate. 

Cùng một vấn đề khi kéo một kho lưu trữ hiện có.

Tôi đã cố gắng tải lên các khóa SSH được tìm thấy trong ~/.ssh/github-ssh.pub để cài đặt Github nhưng không giúp được gì.

CHỈNH SỬA: Chỉ cần kiểm tra, nó sẽ xảy ra ngay cả khi tôi cố gắng sao chép kho lưu trữ không tồn tại.

+0

Để làm việc với các khóa ssh, bạn cần phải thay đổi URL từ 'https: // github.com/JohnDoe/MyProject.git' thành' [email protected]: JohnDoe/MyProject.git'. – phd

Trả lời

2

Dường như tường lửa chặn git truy cập danh sách thu hồi. Để ghi đè này tôi đặt cấu hình:

git config --global http.sslVerify false 
+1

Tôi nghĩ rằng bạn cần phải thả '='. Hãy thử "git config --global http.sslVerify false" thay vì – RGF

+4

Đây thực sự là một ý tưởng tồi; bạn đã tắt tất cả xác minh SSL cho mọi thứ bạn làm trong Git kể từ bây giờ. –

+0

Điều đó phù hợp với tôi – Aguid

11

Nó luôn luôn là một ý tưởng tồi để vô hiệu hóa xác minh chứng chỉ (thiết http.sslVerify để false).

Tôi nghĩ vấn đề ở đây là, khi bạn cài đặt git, bạn chọn để sử dụng của Windows an toàn Kênh thư viện thay vì OpenSSL thư viện:

Git installation options

Như đã chỉ ra bởi @ CurtJ.Sampson (cảm ơn, Curt!), thay vào đó bạn có thể chuyển sang sử dụng thư viện OpenSSL, điều này sẽ khắc phục sự cố của bạn. Điều này có thể được thực hiện với lệnh sau:

git config --global http.sslBackend openssl 

Ngoài ra, bạn có thể cài đặt lại git, xác định OpenSSL thư viện trong quá trình này.

Đừng quên bật xác minh SSL git trở lại với:

git config --global http.sslVerify true 

Cập nhật: Nếu bạn đang sử dụng tự ký hoặc giấy chứng nhận doanh nghiệp tự git máy chủ của bạn, và bạn gặp lỗi khi cố gắng kết nối với nó (chẳng hạn như chứng chỉ tự ký trong chuỗi chứng chỉ hoặc vấn đề chứng chỉ SSL: không thể lấy chứng chỉ của tổ chức phát hành địa phương), sau đó giải pháp là để cho biết git nơi để tìm CA được sử dụng để ký chứng chỉ của trang web đó.Bạn có thể làm điều này với các lệnh cấu hình sau:

git config --global http.{your site's URL here}.sslcainfo "{path to your cert file}" 

Ví dụ, nếu bạn có một máy chủ git địa phương tại https://my.gitserver.com/CA đã ký giấy chứng nhận của trang web là trong C:\Certs\MyCACert.crt, sau đó bạn sẽ cần phải nhập :

git config --global http.https://my.gitserver.com/.sslcainfo "C:\Certs\MyCACert.crt" 

Đây là một giải pháp mạnh mẽ hơn so với cách thêm chứng chỉ CA của bạn để git 's kèm ca-bundle.crt tập tin, kể từ tập tin đó sẽ được ghi đè khi bạn cập nhật tiếp theo git.

+1

Hoàn hảo, giải quyết nó cho tôi! thx =) – walteronassis

+2

Bạn không cần phải cài đặt lại: bạn có thể 'git config --global http.sslBackend openssl' để chuyển tài khoản của bạn trên máy đó để sử dụng OpenSSL hoặc đặt nó thành' schannel' để chuyển nó trở lại. 'git config --list' sẽ cho bạn biết các thiết lập hiện tại; những cái sau đó ghi đè lên những cái trước đó. –

+0

Rất tiếc khi tôi chuyển sang OpenSSL, tôi kết thúc bằng một lỗi khác: "chứng chỉ tự ký trong chuỗi chứng chỉ". (Điều này có thể liên quan đến cấu hình proxy, mặc dù tôi đang sử dụng cùng một proxy công ty, được truy cập qua HTTP, trong cả hai trường hợp.) –

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