Git tampaknya mengenali properti http.sslcainfo dari .gitconfig tetapi mengabaikannya saat dieksekusi? SEC_E_UNTRUSTED_ROOT

10

semua, saya memiliki rantai sertifikat yang berfungsi (dapat diuji dengan OpenSSL) tapi entah bagaimana saya tidak bisa mengatur untuk memberitahu Git untuk memuat sertifikat ini.

Saya mendapatkan kesalahan "otoritas root yang tidak dipercaya" yang sama (SEC_E_UNTRUSTED_ROOT) terlepas dari apakah konfigurasi git saya menunjuk ke file rantai sertifikat yang ada atau palsu.

Untuk detailnya, silakan periksa tangkapan layar terlampir.masukkan deskripsi gambar di sini

Pengaturan yang saya gunakan .gitconfiguntuk file palsu:

sslCAInfo = C:/tmp/foobar.crt

atau, untuk file nyata yang berfungsi dengan OpenSSL:

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

Transkrip konsol:

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.
Peter Muryshkin
sumber
Anda memiliki kesalahan ketik dalam konfigurasi git Anda: tml bukannya tmp
Tensibai
Saya merasa aneh git tidak memunculkan kesalahan dengan fakepath. Anda harus memverifikasi level konfigurasi lain (global, pengguna dan repo) mungkin ada
kemunduran di
@Tensibai tolong berikan instruksi atau tautan ke dokumen, tidak yakin bagaimana cara mencetak semua itu. mis. git config --global --list tidak berfungsi.
Peter Muryshkin
Git config --get-all harus lakukan untuk menunjukkan setiap konfigurasi yang dihasilkan dari sistem, global dan lokal (tidak dapat memverifikasi saya sedang menelepon, dan itu hanya dugaan, penyelesaiannya bisa berarti set SSL_CERT_FILE=C:\tmp\ca-bundle.crtmemberitahu openssl di mana menemukan bundel
Tensibai
C:\git config --get-all-- => error: wrong number of arguments
Peter Muryshkin

Jawaban:

2

Terkena ini hanya hari ini setelah instalasi baru jadi inilah cara saya mengatasinya:

Dari log Anda (penekanan adalah milikku):

fatal: tidak dapat mengakses ...: schannel : next, InitializeSecurityContext gagal:

git dikonfigurasi untuk menggunakan schannel (implementasi windows asli), tetapi schannel menggunakan bundel Windows certs dan bukan bundel cainfo.

Untuk beralih ke openssl untuk menggunakan file bundel khusus gunakan ini:

git config --system http.sslbackend openssl

Dan sekarang git akan menghormati bundel CA yang disahkan di http.sslcainfo.

Atau karena kesalahan saya adalah masalah cypher suite, Anda mungkin tertarik dengan tautan berikut:

Tensibai
sumber
1

Saya memiliki sesuatu yang serupa tahun lalu, jadi saya harap saya ingat

Anda harus memiliki semua rantai sertifikat di file crt. Verifikasi bahwa Anda memiliki semua sertifikat perantara antara sertifikat bitbucket Anda dan yang root (inklusif).

Anda dapat melihat pada format yang benar untuk menambahkannya dalam format pem (yang saya percaya adalah kasus Anda dengan crt) di sini .

Sertifikat saya ditandatangani oleh Comodo ketika saya memiliki masalah itu, sertifikat mereka dan perantara tidak dalam c-bundle default yang disediakan oleh sebagian besar sistem.

Semoga itu bisa membantu!

Sunting: Sekarang saya perhatikan itu terjadi juga dengan yang palsu - coba periksa sistem yang dikenal sebagai sertifikat yang diketahui (setiap sistem memiliki itu). Pada windows Anda bisa masuk ke snap-in mmc Windows Certificates .

arieljannai
sumber