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.
Pengaturan yang saya gunakan .gitconfig
untuk 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.
set SSL_CERT_FILE=C:\tmp\ca-bundle.crt
memberitahu openssl di mana menemukan bundelC:\git config --get-all-- => error: wrong number of arguments
Jawaban:
Terkena ini hanya hari ini setelah instalasi baru jadi inilah cara saya mengatasinya:
Dari log Anda (penekanan adalah milikku):
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:
sumber
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 .
sumber