Git dường như nhận ra thuộc tính http.sslcainfo từ .gitconfig nhưng bỏ qua nó khi thực thi? SEC_E_UNTRUSTED_ROOT


10

tất cả, tôi có một chuỗi chứng chỉ làm việc (có thể kiểm tra được với OpenSSL) nhưng bằng cách nào đó tôi không thể quản lý để bảo Git tải các chứng chỉ này.

Tôi nhận được cùng một lỗi "quyền hạn gốc không đáng tin cậy" (SEC_E_UNTRUSTED_ROOT) độc lập cho dù cấu hình git của tôi trỏ đến tệp chuỗi chứng chỉ giả hay hiện có.

Để biết chi tiết, xin vui lòng kiểm tra ảnh chụp màn hình đính kèm.nhập mô tả hình ảnh ở đây

Cài đặt tôi sử dụng .gitconfigcho tệp giả mạo:

sslCAInfo = C:/tmp/foobar.crt

hoặc, đối với tệp thực hoạt động với OpenSSL:

sslCAInfo = C:/tmp/ca-bundle.crt

Bảng điểm giao diện điều khiển:

C:\tmp>openssl version
OpenSSL 0.9.8h 28 May 2008

C:\tmp>git --version
git version 2.12.2.windows.2

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/ca-bundle.crt

C:\tmp>dir
24.04.2017 13:45 10.875 ca-bundle.crt

c:\tmp>openssl s_client -state -connect https://mygithost:443 -CAfile .\ca-bundle.crt

Verify return code: 0 (ok)

C:\tmp git clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

C:\tmp> git -c http.sslverify=false clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
Resoliving deltas: 100%, done.

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/foobar.crt

C:\tmp\xxx\git pull
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

Bạn có một lỗi đánh máy trong cấu hình git của mình: tml thay vì tmp
Tensibai

Tôi thấy git lạ không gây ra lỗi với fakepath. Bạn nên xác minh các cấp cấu hình khác (toàn cầu, người dùng và repo) có thể là một dự phòng ở đâu đó
Tensibai

@Tensibai vui lòng cung cấp hướng dẫn hoặc liên kết đến tài liệu, không biết làm thế nào để in ra tất cả. ví dụ: git config --global --list không hoạt động.
Peter Muryshkin

Git config --get-all nên làm để hiển thị mọi cấu hình kết quả từ hệ thống, toàn cầu và cục bộ (không thể xác minh tôi trên điện thoại và đó chỉ là một phỏng đoán, cách giải quyết có thể là set SSL_CERT_FILE=C:\tmp\ca-bundle.crtnói với openssl nơi tìm gói
Tensibai

C:\git config --get-all-- => error: wrong number of arguments
Peter Muryshkin

Câu trả lời:


2

Đã bị tấn công bởi điều này ngay hôm nay sau khi cài đặt mới, vì vậy đây là cách tôi vượt qua nó:

Từ nhật ký của bạn (nhấn mạnh là của tôi):

gây tử vong: không thể truy cập ...: schannel : next LaunchizeSecurityContext không thành công:

git được cấu hình để sử dụng schannel (triển khai riêng của windows), nhưng schannel sử dụng gói windows certs và không phải là gói cainfo.

Để chuyển sang openssl để sử dụng tệp gói tùy chỉnh, hãy sử dụng:

git config --system http.sslbackend openssl

Và bây giờ git sẽ tôn vinh gói CA được truyền trong http.sslcainfo.

Ngoài ra, lỗi của tôi là sự cố của bộ cypher, bạn có thể quan tâm bởi các liên kết sau:


1

Tôi đã có một cái gì đó tương tự một năm trước, vì vậy tôi hy vọng tôi nhớ -

Bạn nên có tất cả các chuỗi chứng chỉ trong tệp crt. Xác minh rằng bạn có tất cả các chứng chỉ trung gian giữa chứng chỉ bitbucket của bạn và chứng chỉ gốc (đã bao gồm).

Bạn có thể xem định dạng chính xác để nối chúng theo định dạng pem (mà tôi tin là trường hợp của bạn với crt) ở đây .

Chứng chỉ của tôi đã được Comodo ký khi tôi gặp vấn đề đó, chứng chỉ của họ và người trung gian không có trong gói ca mặc định được cung cấp bởi hầu hết các hệ thống.

Mong rằng sẽ giúp!

Chỉnh sửa: Bây giờ tôi nhận thấy điều đó cũng xảy ra với giả mạo - hãy thử kiểm tra các chứng chỉ đã biết mặc định của hệ thống (mỗi hệ thống đều có như vậy). Trên cửa sổ, bạn có thể truy cập snap-in Chứng chỉ Windows mmc .

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.