Không thể giải quyết “không thể lấy chứng chỉ nhà phát hành cục bộ” bằng git trên Windows với chứng chỉ tự ký


316

Tôi đang sử dụng Git trên Windows. Tôi đã cài đặt gói msysGit. Kho lưu trữ thử nghiệm của tôi có chứng chỉ tự ký tại máy chủ. Tôi có thể truy cập và sử dụng kho lưu trữ bằng HTTP mà không gặp sự cố. Chuyển sang HTTPS gây ra lỗi:

Sự cố về chứng chỉ SSL: không thể lấy chứng chỉ của tổ chức phát hành địa phương.

Tôi đã cài đặt chứng chỉ tự ký trong Tổ chức phát hành chứng chỉ gốc đáng tin cậy trên máy khách Windows 7 của mình. Tôi có thể duyệt đến URL kho lưu trữ HTTPS trong Internet Explorer mà không có thông báo lỗi nào.

Bài đăng trên blog này của Philip Kelley giải thích rằng cURL không sử dụng kho lưu trữ chứng chỉ của máy khách. Tôi đã làm theo lời khuyên của bài đăng trên blog để tạo một bản sao riêng tư curl-ca-bundle.crtvà định cấu hình Git để sử dụng nó. Tôi chắc chắn Git đang sử dụng bản sao của tôi. Nếu tôi đổi tên bản sao; Git phàn nàn rằng tệp bị thiếu.

Tôi đã dán vào chứng chỉ của mình, như đã đề cập trong bài đăng trên blog, tôi vẫn nhận được thông báo "không thể lấy chứng chỉ của tổ chức phát hành địa phương".

Tôi đã xác minh rằng Git vẫn hoạt động bằng cách sao chép Kho lưu trữ GitHub qua HTTPS.

Điều duy nhất tôi thấy khác với bài đăng trên blog là chứng chỉ của tôi gốc - không có chuỗi nào để đạt được nó. Chứng chỉ của tôi ban đầu đến từ việc nhấp vào liên kết Trình quản lý IIS8 IIS 'Tạo chứng chỉ tự ký'. Có thể điều đó làm cho chứng chỉ theo một cách nào đó khác với những gì cURL mong đợi.

Làm cách nào để Git / cURL chấp nhận chứng chỉ tự ký?



1
Đồng thời kiểm tra xem mạng cục bộ của bạn có được phép đẩy tệp vào kho lưu trữ github hay không. Có thể có một số hạn chế về tường lửa hoặc phần mềm chống vi-rút.
shasi kanth

Nếu bất kỳ ai gặp phải lỗi này khi sử dụng Bower, hãy tạo tệp .bowerrc có nội dung { "strict-ssl": false }. Đừng cảm ơn tôi, cảm ơn anh chàng này: stapp.space/fight-with-2 Tôi đã chiến đấu với lỗi này trong gần 5 giờ đồng hồ, thẳng thắn !!
Ganesh Jadhav

Câu trả lời:


296

Mở Git Bash và chạy lệnh nếu bạn muốn tắt hoàn toàn xác minh SSL.

git config --global http.sslVerify false

Lưu ý: Giải pháp này có thể mở ra cho bạn các cuộc tấn công như tấn công man-in-the-middle . Do đó, hãy bật lại xác minh càng sớm càng tốt:

git config --global http.sslVerify true

78
Câu trả lời này đánh bại tính bảo mật của SSL bằng cách cho phép các cuộc tấn công man-in-the-middle. Các câu trả lời khác đã giải thích cách định cấu hình git để tin cậy chứng chỉ cụ thể mà bạn cần.
dsh

15
thực sự là câu trả lời khủng khiếp, bạn thậm chí không yêu cầu họ bật lại SSL. Đây là lý do tại sao các lỗ hổng bảo mật xảy ra.
Edgar Aroutiounian

Nếu bạn đang sử dụng Gitblit thì không có lựa chọn nào khác thay vì thực hiện sshVerify false.
Samir

27
Để tắt xác minh TLS / SSL cho một lệnh git, hãy sử dụng lệnh sau:git -c http.sslVerify=false clone https://domain.com/path/to/git
Maxim Suslov

1
Có một số giải pháp đã được cung cấp bên dưới và tôi đã đề xuất những khuyết điểm. Vì vậy, bạn quyết định chọn giải pháp nào để giải quyết vấn đề.
Samir,

212

Vấn đề là git theo mặc định sử dụng chương trình phụ trợ tiền điện tử "Linux".

Bắt đầu với Git dành cho Windows 2.14, bây giờ bạn có thể định cấu hình Git để sử dụng SChannel, lớp mạng Windows tích hợp sẵn làm chương trình phụ trợ tiền điện tử. Điều này có nghĩa là bạn sẽ sử dụng cơ chế lưu trữ chứng chỉ Windows và bạn không cần phải định cấu hình rõ ràng cơ chế lưu trữ CA curl: https://msdn.microsoft.com/en-us/library/windows/desktop/aa380123(v= so với 85) .aspx

Chỉ cần thực hiện:

git config --global http.sslbackend schannel

Điều đó sẽ giúp ích.

Sử dụng schannel hiện là cài đặt tiêu chuẩn khi cài đặt git cho windows, bạn cũng không nên kiểm tra kho lưu trữ bằng SSH nếu có thể, vì https dễ cấu hình hơn và ít có khả năng bị tường lửa chặn hơn nên ít khả năng bị lỗi hơn.


1
Tuy nhiên, lưu ý rằng giải pháp này có thể làm cho git config --global http.sslCAInfo <my-server-self-signed-cert.pem>không hoạt động. Tôi đã định cấu hình http.sslCAInfođể sử dụng chứng chỉ tự ký cho máy chủ của mình và đó là lý do (có thể không giống với OP) mà tôi gặp phải "Sự cố Chứng chỉ SSL: không thể lấy chứng chỉ của tổ chức phát hành cục bộ" khi tôi làm như vậy git clone https://github.com/Microsoft/vscode.git. Cuối cùng, tôi đã sử dụng câu trả lời từ stackoverflow.com/a/47196562/1323552 (Ben PP Tung) để điều chỉnh cấu hình sslCAInfo cụ thể cho máy chủ git của tôi để giải quyết vấn đề đó.
Johnny Wong

95

Tôi cũng có vấn đề này. Trong trường hợp của tôi, tôi đang cố lấy một móc Git sau khi nhận để cập nhật bản sao đang hoạt động trên máy chủ với mỗi lần đẩy. Cố gắng làm theo các hướng dẫn trong blog mà bạn đã liên kết đến. Nó cũng không hoạt động với tôi và ghi đè cài đặt trên cơ sở mỗi người dùng dường như cũng không hoạt động.

Cuối cùng, những gì tôi phải làm là vô hiệu hóa xác minh SSL (như bài báo đã đề cập) cho Git nói chung. Không phải là giải pháp hoàn hảo, nhưng nó sẽ hoạt động cho đến khi tôi có thể tìm ra giải pháp tốt hơn.

Tôi đã chỉnh sửa tệp văn bản cấu hình Git (với ứng dụng trung tính kết thúc dòng yêu thích của tôi như Notepad ++) nằm tại:

C: \ Program Files (x86) \ Git \ etc \ gitconfig

Trong khối [http], tôi đã thêm một tùy chọn để tắt sslVerify. Nó trông như thế này khi tôi hoàn thành:

[http]
    sslVerify = false
    sslCAinfo = /bin/curl-ca-bundle.crt

Đó là mẹo.

GHI CHÚ:

  • Điều này vô hiệu hóa xác minh SSL và không được khuyến nghị như một giải pháp lâu dài.

  • Bạn có thể vô hiệu hóa từng kho lưu trữ này, điều này vẫn không tuyệt vời, nhưng bản địa hóa cài đặt.

  • Với sự ra đời của LetsEncrypt.org, việc thiết lập SSL hiện nay khá đơn giản, tự động và miễn phí như một giải pháp thay thế cho chứng chỉ tự ký và không cần thiết phải tắt sslVerify.


149
Điều này đánh bại mục đích của SSL.
syaz

50
bạn có thể sử dụng lệnh "git config --global http.sslVerify false" để xác minh SSL disable
CleanCoder

6
Cảm ơn bạn đã chỉ sslCAinfora mục cấu hình; nhưng tôi không tán thành câu trả lời vì vô hiệu hóa vĩnh viễn SSL cho git toàn hệ thống không có ý nghĩa gì (bạn đã thử vô hiệu hóa nó trên toàn hệ thống, sau đó sao chép, sau đó bật lại rồi tắt nó trong local git config cho repo mới được sao chép?).
7heo.tk

37
Đối với một one-off lệnh, không có cần phải thay đổi file cấu hình:git -c http.sslVerify=false clone https://...
pts

8
Bản sửa lỗi tốt hơn ở đây: blog.msdn.microsoft.com/phkelley/2014/01/20/…
Warren P

56

kiddailey tôi nghĩ đã khá gần, tuy nhiên tôi sẽ không tắt xác minh ssl mà chỉ cung cấp chứng chỉ cục bộ:

Trong tệp cấu hình Git

[http]
    sslCAinfo = /bin/curl-ca-bundle.crt

Hoặc thông qua dòng lệnh:

git config --global http.sslCAinfo /bin/curl-ca-bundle.crt

8
Trên git cho windows, đây làgit config --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt
Karsten Tinnefeld.

1
Hoặc cho tôigit config --global http.sslCAinfo /c/Program\ Files\ \(x86\)/Git/bin/curl-ca-bundle.crt
sparrowt

Đối với người dùng trên MacPorts, đây làgit config --global http.sslCAinfo /opt/local/share/curl/curl-ca-bundle.crt
miken32

3
Với Git 2.8, bạn có thể sử dụng git config --list --show-originđể xem cấu hình http.sslCAinfo được đặt ở đâu
Anish

Vị trí giấy chứng nhận của tôi trên mac là: ~ / macports / share / curl / curl-ca-bundle.crt
user3282611

51

Tôi cũng phải đối mặt với vấn đề này. Và cuối cùng đã được giải quyết bằng cách nhận hướng dẫn từ Blog MSDN này .

Cập nhật

Trên thực tế, bạn cần thêm chứng chỉ vào tệp chứng chỉ của git curl-ca-Bundel.cert nằm trong thư mục Git \ bin.

Các bước

  1. Mở trang github của bạn trong trình duyệt và nhấp vào biểu tượng ổ khóa trên thanh địa chỉ.
  2. Trong cửa sổ bật lên nhỏ đã mở, hãy điều hướng đến liên kết 'xem chứng chỉ', nó sẽ mở ra một cửa sổ bật lên.
  3. Trong đó điều hướng đến tab chứng chỉ (thứ 3 trong trường hợp của tôi). Chọn nút trên cùng là chứng chỉ gốc. Và nhấn nút sao chép chứng chỉ ở dưới cùng và lưu tệp.
  4. Trong trình khám phá tệp, điều hướng thư mục Git \ bin và mở curl-ca-pack.crt trong trình soạn thảo văn bản.
  5. Mở tệp chứng chỉ đã xuất (ở bước 3) trong trình soạn thảo văn bản.
  6. Sao chép tất cả nội dung từ chứng chỉ đã xuất vào cuối curl-ca-pack.crt và lưu.

Cuối cùng là kiểm tra tình trạng. Xin lưu ý rằng hãy sao lưu tệp curl-ca-pack.crt trước khi chỉnh sửa để giữ an toàn.


4
"điều hướng thư mục Git \ bin và mở curl-ca-pack.crt" Không có curl-ca-pack.crt trong git \ bin!
Anton K

@AntonK nếu nó không tồn tại, hãy tự tạo một cái trong notepad và đổi tên nó bằng curl-ca-bundle.crt. Các bước khác vẫn giữ nguyên.
Nadeem Jamali

18
@AntonK Nó có thể được gọi là chỉ ca-bundle.crtvà được đặt tại mingw64\ssl\certshoặc mingw32\ssl\certs.
Ian Kemp

1
Đã sử dụng cái này cho SourceTree của Atlassian. Cài đặt GIT đi kèm nằm trong% userprofile% \ appdata \ local \ attlassian \ sourcetree \ git_local. curl-ca-bundle.crt đã tồn tại, đã thêm chứng chỉ gốc đã xuất mã hóa base64 của tôi.
Xanothos

41

Câu trả lời cho câu hỏi này Sử dụng makecert để phát triển SSL đã sửa lỗi này cho tôi.

Tôi không biết tại sao, nhưng chứng chỉ được tạo bởi liên kết đơn giản 'Tạo chứng chỉ tự ký' trong Trình quản lý IIS không thực hiện được thủ thuật này. Tôi đã làm theo cách tiếp cận trong câu hỏi được liên kết về việc tạo và cài đặt CA Root tự ký; sau đó sử dụng điều đó để cấp Chứng chỉ xác thực máy chủ cho máy chủ của tôi. Tôi đã cài đặt cả hai trong số chúng trong IIS.

Điều đó khiến tình huống của tôi giống như bài đăng trên blog được tham chiếu trong câu hỏi ban đầu. Khi chứng chỉ gốc đã được sao chép / dán vào curl-ca-pack.crt, kết hợp git / curl đã được thỏa mãn.


"Tôi không biết tại sao, nhưng chứng chỉ được tạo bởi liên kết đơn giản 'Tạo chứng chỉ tự ký' trong Trình quản lý IIS không thực hiện được thủ thuật ..." - Điều tốt nhất tôi có thể nói, nó tạo ra chứng chỉ không đúng định dạng. Có rất nhiều quy tắc khi tạo chứng chỉ X.509; "làm điều tối thiểu để làm cho nó hoạt động" không còn hoạt động tốt. Ngoài ra, hãy xem Cách bạn ký Yêu cầu ký chứng chỉ với Tổ chức phát hành chứng chỉCách tạo chứng chỉ tự ký với openssl?
jww

Điều này làm việc với tôi, nhưng tôi tạm thời bị treo ở phần "Tôi đã cài đặt cả hai trong IIS". Để xác minh cho người khác ... chứng chỉ máy chủ được chỉ định trong IIS và CA gốc cần được nhập vào "Tổ chức phát hành chứng chỉ gốc đáng tin cậy" thông qua tiện ích trình quản lý cert của Windows (certmgr.msc)
Philip

28

Để tránh vô hiệu hóa hoàn toàn xác minh ssl hoặc sao chép / tấn công tệp chứng chỉ CA đi kèm được sử dụng bởi git, bạn có thể xuất chuỗi chứng chỉ của máy chủ lưu trữ thành một tệp và làm cho git sử dụng nó:

git config --global http.https://the.host.com/.sslCAInfo c:/users/me/the.host.com.cer

Nếu điều đó không hiệu quả, bạn có thể tắt xác minh ssl chỉ cho máy chủ:

git config --global http.https://the.host.com/.sslVerify false

Lưu ý: Có thể xảy ra các cuộc tấn công giữa người đàn ông khi tắt xác minh ssl.


4
Có thể cần lưu ý rằng --globaltùy chọn này là không cần thiết: nếu bạn bỏ qua --global, cài đặt chỉ áp dụng cho git repo cụ thể đó.
Wes Turner

20

Tôi vừa gặp vấn đề tương tự nhưng sử dụng sourcetree trên windows Các bước tương tự đối với GIT bình thường trên Windows. Làm theo các bước sau, tôi có thể giải quyết vấn đề này.

  1. Lấy cây chứng chỉ máy chủ Điều này có thể được thực hiện bằng chrome. Điều hướng đến là địa chỉ máy chủ. Nhấp vào biểu tượng ổ khóa và xem các chứng chỉ. Xuất tất cả chuỗi chứng chỉ dưới dạng tệp được mã hóa base64 (PEM).
  2. Thêm chứng chỉ vào chuỗi tin cậy của tệp cấu hình tin cậy GIT của bạn Chạy "git config --list". tìm cấu hình "http.sslcainfo", cấu hình này cho biết vị trí của tệp tin cậy chứng chỉ. Sao chép tất cả các chứng chỉ vào tệp chuỗi tin cậy bao gồm "- -BEGIN- -" và "- -END- -".
  3. Đảm bảo bạn thêm toàn bộ Chuỗi chứng chỉ vào tệp chứng chỉ

Điều này sẽ giải quyết vấn đề của bạn với các chứng chỉ tự ký và sử dụng GIT.

Tôi đã thử sử dụng cấu hình "http.sslcapath" nhưng điều này không hoạt động. Ngoài ra, nếu tôi không bao gồm toàn bộ chuỗi trong tệp chứng chỉ thì điều này cũng sẽ không thành công. Nếu bất cứ ai có ý kiến ​​về những điều này, vui lòng cho tôi biết vì phần trên phải được lặp lại để cài đặt mới.

Nếu đây là GIT hệ thống thì bạn có thể sử dụng các tùy chọn trong TOOLS -> tab tùy chọn GIt để sử dụng GIT hệ thống và điều này sau đó cũng giải quyết được vấn đề trong sourcetree.


2
"nếu tôi đã không bao gồm toàn bộ chuỗi trong file giấy chứng nhận thì đây cũng sẽ thất bại" - Tôi chỉ cần chạy vào vấn đề này
Amani Kilumanga

Theo như bao gồm toàn bộ chuỗi, tôi có hai chứng chỉ phía trên cert của github. Tôi có bao gồm chúng theo thứ tự dưới dạng root-> next cert-> github cert trong tệp sslcainfo.crt không?
Jecoms

Tôi đã có thể truy cập các gói git repo chỉ bằng cách thêm cert gốc.
Jecoms

Dành cho độc giả trong tương lai. Không biết nó có quan trọng không, nhưng tôi đặt chứng chỉ "gốc" (trên cùng) ở CUỐI của tệp (http.sslcainfo). Và sau đó khi tôi loại bỏ chứng chỉ gốc trong chuỗi, tôi đặt chứng chỉ đó phía trên mục nhập trước của tệp (http.sslcainfo).
granadaCoder

13

Trong trường hợp Kho lưu trữ github (hoặc bất kỳ chứng chỉ nào không tự ký) , việc chọn bên dưới khi cài đặt Git-on-windows, đã giải quyết được sự cố.

nhập mô tả hình ảnh ở đây


1
Bạn dường như đã trả lời một câu hỏi khác. Câu hỏi của OP liên quan đến chứng chỉ tự ký trên máy khách Windows.
jww

@jww tiêu đề câu hỏi là một thông báo lỗi git được hiển thị ngay cả khi repo KHÔNG phải là SSL tự ký!
Jawad Al Shaikh

Điều này đã giúp tôi vượt qua lỗi, nhưng đối với tôi khi truy cập GitHub Enterprise, yêu cầu tạo khóa và thêm khóa công khai / riêng tư.
ΩmegaMan

1
Nếu chứng chỉ tự ký đã được quản trị viên windows hữu ích đưa vào kho chứng chỉ windows thông qua chính sách nhóm thì câu trả lời này cũng là một câu trả lời hay.
JamesD,

8

Tôi đã gặp sự cố này trước đây và giải quyết nó bằng cách sử dụng cấu hình sau.

[http "https://your.domain"] sslCAInfo=/path/to/your/domain/priviate-certificate

Kể từ git 2.3.1, bạn có thể đặt https://your.domainsau http để cho biết chứng chỉ sau chỉ dành cho nó.


1
Đây là giải pháp đơn giản nhất và chính xác nhất mà tôi tìm thấy, nếu bạn cũng đã định cấu hình git config --global http.sslCAInfo <your-server-self-signed-cert.pem>trước đó (Do đó gây ra lỗi "không thể lấy chứng chỉ nhà phát hành địa phương")
Johnny Wong

ĐÂY là câu trả lời chính xác cho vấn đề của tôi (và không chỉ đơn giản là "vô hiệu hóa xác thực SSL" ~~). Không biết rằng bạn chỉ có thể chỉ định vị trí của chứng chỉ cho một máy chủ cụ thể. Át chủ!
Rocío García Luque

4

Trong trường hợp của tôi, vì tôi đã cài đặt ConEmu Terminal cho Window 7, nó tạo raca-bundle trong quá trình cài đặt tại C:\Program Files\Git\mingw64\ssl\certs.

Vì vậy, tôi phải chạy các lệnh sau trên thiết bị đầu cuối để làm cho nó hoạt động:

$ git config --global http.sslbackend schannel
$ git config --global http.sslcainfo /mingw64/ssl/certs/ca-bundle.crt

Do đó, của tôi C:\Program Files\Git\etc\gitconfigchứa những thứ sau:

[http]
    sslBackend = schannel
    sslCAinfo = /mingw64/ssl/certs/ca-bundle.crt

Ngoài ra, tôi đã chọn tùy chọn tương tự như đã đề cập ở đây khi cài đặt Git.

Hy vọng rằng sẽ giúp!


2
  1. Tải xuống chứng chỉ từ liên kết này: https://github.com/bagder/ca-bundle
  2. Thêm nó vào C:\Program Files\Git\binC:\Program Files\Git\mingw64\bin

Sau đó, hãy thử một cái gì đó như: git clone https://github.com/heroku/node-js-getting-started.git


2

Một điều khiến tôi bối rối là định dạng của đường dẫn (trên PC Windows của tôi). Ban đầu tôi có cái này:

git config --global http.sslCAInfo C:\certs\cacert.pem

Nhưng điều đó không thành công với lỗi "không thể lấy chứng chỉ tổ chức phát hành địa phương".

Điều cuối cùng đã hoạt động là:

git config --global http.sslCAInfo "C:\\certs\\cacert.pem"

1

Để khắc phục lỗi đặc biệt, sự cố chứng chỉ SSL: không thể lấy chứng chỉ của tổ chức phát hành địa phương trong git

Tôi đã gặp vấn đề tương tự với chứng chỉ Let's Encrypt.

Một trang web có https, chúng tôi chỉ cần:

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

nhưng git pull nói:

fatal: unable to access 'https://example.com/git/demo.git/': SSL certificate problem: unable to get local issuer certificate

Để khắc phục, chúng ta cũng cần thêm:

SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

0

lỗi

đẩy không thành công
nghiêm trọng: không thể truy cập sự
cố chứng chỉ SSL: không thể lấy chứng chỉ của tổ chức phát hành địa phương

Lý do

Sau khi cam kết các tệp trên một máy cục bộ, lỗi "push fail" có thể xảy ra khi các thông số kết nối Git cục bộ đã lỗi thời (ví dụ: thay đổi HTTP thành HTTPS).

Giải pháp

  1. Mở .gitthư mục trong thư mục gốc của thư mục cục bộ
  2. Mở configtệp trong trình soạn thảo mã hoặc trình soạn thảo văn bản (VS Code, Notepad, Textpad)
  3. Thay thế các liên kết HTTP bên trong tệp bằng liên kết HTTPS hoặc SSH mới nhất có sẵn từ trang web của repo Git thích hợp (nút sao chép)
    Ví dụ:
    url = http://git.[host]/[group/project/repo_name]     (actual path)
    
    thay thế nó bằng một trong hai
    url = ssh://git@git.[host]:/[group/project/repo_name] (new path SSH)
    url = https://git.[host]/[group/project/repo_name]    (new path HTTPS)
    

0

Tôi đã thử tất cả các cách tiếp cận được đề cập ở đây nhưng không có may mắn với bất kỳ. Cuối cùng tôi đã tìm thấy một cách tiếp cận khác những gì tôi đã làm là

  • Đã tạo khóa công khai / riêng tư ssh trên hệ thống của tôi cho git repo

  • sao chép khóa ssh vào tài khoản git của bạn và sử dụng ssh thay vì https trong git clone. kiểm tra bước dưới đây để tạo khóa ssh

Mở Git Bash.

Dán văn bản bên dưới, thay thế vào địa chỉ email GitHub của bạn.

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Thao tác này tạo khóa ssh mới, sử dụng email được cung cấp làm nhãn.

Tạo cặp khóa rsa công khai / riêng tư. Khi bạn được nhắc "Nhập tệp để lưu khóa", hãy nhấn Enter. Điều này chấp nhận vị trí tệp mặc định.

Nhập tệp để lưu khóa (/c/Users/you/.ssh/id_rsa):[Nhấn enter]


0

Trong trường hợp của tôi, tôi phải sử dụng các chứng chỉ khác nhau cho các kho lưu trữ git khác nhau .

Làm theo các bước bên dưới (Nếu bạn có chứng chỉ kho lưu trữ của mình, bạn có thể đọc từ bước 5 )

  1. Truy cập trang web của kho lưu trữ từ xa. Ví dụ: github.com, bitbucket.org, tfs.example ...

  2. Nhấp vào biểu tượng Khóa ở phía trên bên trái và nhấp vào Chứng chỉ .

  3. Chuyển đến tab Đường dẫn chứng chỉ và nhấp đúp vào .. Chứng chỉ gốc

  4. Chuyển đến tab Chi tiết và nhấp vào Sao chép vào tệp .

  5. Xuất / Sao chép chứng chỉ đến bất cứ nơi nào bạn muốn. Ví dụ: C: \ certs \ example.cer

  6. Mở git bash tại thư mục kho lưu trữ cục bộ của bạn và nhập:

    $ git config http.sslCAInfo "C:\certs\example.cer"

Bây giờ bạn có thể sử dụng các chứng chỉ khác nhau cho mỗi kho lưu trữ.

Hãy nhớ rằng, kêu gọi với các --globaltham số cũng sẽ thay đổi giấy chứng nhận của kho git trong các thư mục khác, vì vậy bạn không nên sử dụng các --globaltham số khi thực hiện lệnh này.


0

Để hoàn toàn chi tiết tóm tắt của tất cả các câu trả lời trên.

Lý do

Sự cố này đang xảy ra vì git không thể hoàn thành quá trình bắt tay https với máy chủ git là kho lưu trữ bạn đang cố truy cập hiện có.

Giải pháp

Các bước để lấy chứng chỉ từ máy chủ github

  1. Mở github mà bạn đang cố gắng truy cập trong trình duyệt
  2. Nhấn vào biểu tượng ổ khóa trên thanh địa chỉ> nhấp vào 'xác nhận'
  3. Chuyển đến tab 'Đường dẫn chứng chỉ'> chọn nút trên cùng trong hệ thống thứ bậc của chứng chỉ> nhấp vào 'xem chứng chỉ'
  4. Bây giờ nhấp vào 'Chi tiết' và nhấp vào 'Sao chép vào tệp ..'> Nhấp vào 'Tiếp theo'> Chọn 'X509 được mã hóa cơ sở 64 (.CER)'> lưu nó vào bất kỳ đường dẫn nào bạn muốn.

Các bước để thêm chứng chỉ vào kho lưu trữ chứng chỉ git cục bộ

  1. Bây giờ, hãy mở chứng chỉ bạn đã lưu trong sổ ghi chú và sao chép nội dung cùng với - Chứng chỉ nguồn gốc-- và - chứng chỉ ký kết--

  2. Để tìm đường dẫn mà tất cả các chứng chỉ được lưu trữ cho git của bạn, hãy thực hiện lệnh sau trong cmd.

    git config --list

  3. Kiểm tra khóa 'http.sslcainfo', giá trị tương ứng sẽ là đường dẫn.

  4. Bây giờ, hãy mở 'ca-pack.crt' có trong đường dẫn đó.

Lưu ý 1: mở chế độ quản trị viên tệp này nếu không bạn sẽ không thể lưu nó sau khi cập nhật. (Mẹo - bạn có thể sử dụng Notepad ++ cho mục đích này)

Lưu ý 2: Trước khi sửa đổi tệp này, vui lòng giữ một bản sao lưu ở nơi khác.

  1. Bây giờ sao chép nội dung của tệp được đề cập ở bước 1 vào tệp ở bước 4 ở tệp cuối, giống như cách các chứng chỉ khác được đặt trong ca-pack.crt.
  2. Bây giờ, hãy mở một thiết bị đầu cuối mới và bây giờ bạn sẽ có thể thực hiện các thao tác liên quan đến máy chủ git bằng https.

-5

Sử dụng lệnh này trước khi chạy cập nhật / cài đặt trình soạn nhạc:

git config --global http.sslverify false
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.