SSL sertifikası sorunu: sertifika zincirinde kendinden imzalı sertifika


0

Bir güvenlik duvarının arkasında, krom kullanarak, şöyle bir github deposuna erişebiliyorum: https://github.com/Squirrel/Squirrel.Windows

Chrome, bu erişim için sertifikamızı kullanır. Kullanarak aynı URL’ye erişmeye çalışırsam GitExtensions , Bu hatayı alıyorum:

SSL sertifikası sorunu: sertifika zincirinde kendinden imzalı sertifika

GitExtensions'ın erişime izin vermek için sertifikamızı kullanmasına neden olabilir miyim?

EDIT: daha fazla bilgi:

Makinemde mysysGit'i görmüyorum, ancak mingw / curl görüyorum, bu yüzden Git'in bunları kullandığını varsayıyorum. Bunlar görünüşe göre sertifika zincirini oluştururken Windows güven sertifikalarını kullanmamaktadır. Aldığım hata, S SSL sertifikası sorunu: sertifika zincirinde kendinden imzalı sertifika , Git / Github tarafından kullanılan kök sertifikanın yerleşik sertifika yetkilisi (CA) kök paketinde bulunmadığını gösterir. @Akber Choudhry'nin belirttiği gibi, Github SSL sunucusu tarafından hizmet verilen cer zincirinin kökü olan CA DigiCert Yüksek Güvence EV Kökü CA ve CA'yı C: \ Program Files (x86) \ Git \ bin \ curl-ca-bundle.crt dizininde görüyorum.

Sorunun GitExtensions ile değil Git olduğunu doğrulamak için komut satırında bunu yaptım:

 >>git clone https://github.com/Squirrel/Squirrel.Windows.git

Ve aynı SSL sertifikası problem hatası aldı.

Git'in bu sertifikayı kullanmadığını gösteriyor, bu yüzden Git'i şu şekilde yapılandırmaya çalıştım:

>>git config --system http.sslcainfo "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt"

ama bunun bir etkisi olmadı.


Hangi sertifika kullanılıyor? hangi yere bağlanıyorsun % 100 MitM'ed alamadığınıza emin misiniz?
LvB

MitM'ed alamıyoruz. Buradaki ağ adamı değilim, ancak sertifikanın satın alınmış bir sertifika olduğuna inanıyorum. Hangi konuma bağlı olduğunu sorduğunda ne demek istediğini anlamadım.
Al Lelopath

önce TLS sunucu kurulumunuzu kontrol etmeden önce ağ görevlisiyle görüşün ([ssllabs.com] gibi araçları kullanabilirsiniz ve HTTP protokolünün gerçekte nasıl çalıştığını öğrenin. şeyler onları kabul etmiyor.
LvB

GitKraken'i kontrol etmenizi öneririm. Gelişimim için kullanıyorum

Yanıtlar:


3

Güvenlik duvarının arkasında ... github ... Chrome bu erişim için sertifikamızı kullanır.

Bu açıklamaya dayanarak, "bizim" sertifikamızın Github için orijinal sertifika olmadığını, ancak bağlantının ortasındaki bir erkeğe kendi ("bizim") sertifikasını üreten SSL incelemesi olan bir güvenlik duvarı kullandığınızı kabul ediyorum. Bu sertifikayı veren güvenlik duvarındaki CA (proxy CA) muhtemelen Windows Güven Mağazası'na eklenir ve bu Chrome buna güvenir.

Ancak Git, Windows Güven Mağazası'nı kullanmıyor ve bu nedenle bu proxy CA'yı bilmiyor. Bu nedenle, güvenlik duvarı tarafından kullanılan proxy CA'yı, Git'i veren orijinal CA'yı değil Git için CA deposuna eklemeniz gerekir. Github için sertifika.


[Bunu yapmak] ile sona erdi: 1. curl-ca-bundle.crt kopyasını alın. 2. Kopyala / yapıştır DigiCert High Assurance EV Root CA bu kopyaya 3. Git ve bu kopyaya gelin.
Al Lelopath

1

Krom kullandığınızda ve HTTPS üzerinden Github'a eriştiğinizde, Github'un sertifika zincirini tarayıcınızdaki ve Windows'taki yerleşik kök sertifikalarına karşı doğrularsınız.

Kapakların altında, Gitextensions, sertifika zincirini oluştururken Windows güven sertifikalarına danışmayan msysgit kullanır.

Hatadan, Github tarafından kullanılan kök sertifikanın yerleşik sertifika yetkilisi (CA) kök paketinde bulunmadığı anlaşılıyor. Bunun nedeni, daha eski bir msysgit veya curl sürümünü paketleyen Gitextensions olabilir.

msysgit içerir DigiCert High Assurance EV Root CA CA paketinde ve birkaç senedir orada. Dosyada bu dizgiyi arayın bin/curl-ca-bundle.crt

Makinenizde yüklü eski bir msysgit sürümü veya mingw araçları olup olmadığını kontrol edin. Eğer öyleyse, temizleyin ve tekrar takın. Son olarak, sertifikayı eklemeniz gerekirse, msysgit sertifika ekleme prosedürüne bakın.


C: \ Program Files (x86) \ Git \ bin \ curl-ca-bundle.crt dosyasına bakıldığında, CA olduğunu görüyorum.
Al Lelopath

msysgit eski? Bu sayfada msysGit'in Git için Windows 2.x ile değiştirildiği yazıyor. Ayrıca, belirli bir CA'nın (DigiCert High Assurance EV Root CA) ne kadar önemli olduğunu anlamıyorum. Açıklayabilir misin?
Al Lelopath

1
Bu CA sertifikası, github SSL sunucusu tarafından sunulan cer zincirinin köküdür. Müşteriniz (tarayıcı veya git istemcisi) tanımlanmış kök sertifikaya sahipse, zincirdeki diğer sertifikaların kökenini doğrulayabilir. CA paketini nereden aldığından emin değilim, ancak silip Windows için Git'i yüklemeyi deneyin.

Tam olarak ne demek istediğinizi "silerek" tanımlayabilir misiniz? "o" nedir ve nasıl silebilirim?
Al Lelopath

1
Sisteminize ve yolunuza ve kıvrılmaların nerden yapıldığına bağlı olacaktır. Herhangi bir mingw veya msysgit kurulumunun gitmesi gerektiğini söyleyebilirim.
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.