Git, http.sslcainfo özelliğini .gitconfig'den tanımış gibi görünüyor, ancak yürütme sırasında yoksayar mı? SEC_E_UNTRUSTED_ROOT


10

hepsi, çalışan bir sertifika zinciri (OpenSSL ile test edilebilir) var ama bir şekilde Git'e bu sertifikaları yüklemesini söylemeyi başaramıyorum.

Ben olsun aynı "güvenilmeyen kök otorite" hatası (SEC_E_UNTRUSTED_ROOT) bağımsız , mevcut ya da sahte sertifika zinciri dosyasına benim git yapılandırma noktalarının olmadığı.

Ayrıntılar için lütfen ekteki ekran görüntüsünü kontrol edin.resim açıklamasını buraya girin

.gitconfigSahte dosya için kullandığım ayar :

sslCAInfo = C:/tmp/foobar.crt

veya OpenSSL ile çalışan gerçek dosya için:

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

Konsol transkripti:

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.

Git yapılandırmanızda bir yazım hatası var: tmp yerine tml
Tensibai

Ben garip git fakepath ile bir hata yükseltmez buluyorum. Diğer yapılandırma seviyelerini (global, kullanıcı ve repo) doğrulamanız gerekir, muhtemelen bir yerde bir geri dönüş vardır
Tensibai

@Tensibai lütfen tüm bunları nasıl yazdıracağınızdan emin olmayan talimatlar veya dokümanlara bir bağlantı sağlayın. örneğin git config --global --list çalışmıyor.
Peter Muryshkin

Git config --get-all, sistemde, global ve yerel olarak ortaya çıkan her yapılandırmayı göstermek için yapmalıdır (telefonda olduğumu doğrulayamıyor ve bu sadece bir tahmin, geçici çözüm, set SSL_CERT_FILE=C:\tmp\ca-bundle.crt
openssl'e

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

Yanıtlar:


2

Yeni bir kurulumdan hemen sonra buna çarptı, bu yüzden bunu nasıl aştım:

Günlüklerinizden (vurgu benimdir):

ölümcül: erişilemiyor ...: schannel : next InitializeSecurityContext başarısız oldu:

git schannel (windows native uygulaması) kullanacak şekilde yapılandırılmıştır, ancak schannel, cainfo paketini değil windows certs paketini kullanır.

Özel bir paket dosyası kullanmak üzere openssl'ye geçmek için şunu kullanın:

git config --system http.sslbackend openssl

Ve şimdi git http.sslcainfo'da geçen CA paketini onurlandıracak.

Alternatif olarak, hatam bir şifre paketi sorunu olduğundan, aşağıdaki bağlantılarla ilgilenebilirsiniz:


1

Bir yıl önce benzer bir şeyim vardı, umarım hatırlarım -

Tüm sertifika zincirinin crt dosyasında olması gerekir. Bitbucket sertifikanız ve kök sertifika (dahil) arasındaki tüm ara sertifikalara sahip olduğunuzu doğrulayın.

Sen üzerinde (ben crt ile vaka olduğuna inanıyoruz) PEM biçiminde bunları ekleyerek için doğru biçimde bir göz olabilir burada .

Bu sorunla karşılaştığımda sertifikam Comodo tarafından imzalandı, sertifikaları ve aracıları çoğu sistem tarafından sağlanan varsayılan paket içinde değildi.

Umarım yardımcı olur!

Düzenleme: Şimdi de sahte bir ile olur fark ettim - sistem varsayılan bilinen sertifikaları kontrol etmeye çalışın (her sistem böyle vardır). Windows'da Windows Sertifikaları mmc ek bileşenine gidebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.