Проблема с SSL-сертификатом: самоподписанный сертификат в цепочке сертификатов

Проблема с SSL-сертификатом: самоподписанный сертификат в цепочке сертификатов

За брандмауэром, используя Chrome, я могу получить доступ к репозиторию GitHub следующим образом: https://github.com/Squirrel/Squirrel.Windows

Chrome использует наш сертификат для этого доступа. Если я попытаюсь получить доступ к тому же URL, используяGitExtensions, я получаю эту ошибку:

Проблема с SSL-сертификатом: самоподписанный сертификат в цепочке сертификатов

Могу ли я заставить GitExtensions использовать наш сертификат для разрешения доступа?

EDIT: дополнительная информация:

На моей машине я не вижу mysysGit, но вижу mingw/curl, поэтому предполагаю, что Git использует их. Они, по-видимому, не используют сертификаты доверия Windows при построении цепочки сертификатов. Ошибка, которую я получаю, SПроблема с сертификатом SL: самоподписанный сертификат в цепочке сертификатов, указывает, что корневой сертификат, используемый Git/Github, отсутствует в корневом пакете встроенного центра сертификации (CA). Как указал @Akber Choudhry, сертификат CA, который является корнем цепочки сертификатов, обслуживаемых сервером Github SSL, DigiCert High Assurance EV Root CAи я вижу этот CA в C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt.

Чтобы убедиться, что проблема связана с Git, а не с GitExtensions, я сделал это в командной строке:

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

И получил ту же ошибку о проблеме с сертификатом SSL.

Создается впечатление, что Git не использует этот сертификат, поэтому я попробовал настроить Git следующим образом:

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

но это не имело никакого эффекта..

решение1

За брандмауэром, ...github... Chrome использует наш сертификат для этого доступа.

На основании этого описания я предполагаю, что "наш" сертификат не является оригинальным сертификатом для Github, но что вы используете брандмауэр с проверкой SSL, который генерирует свой собственный ("наш") сертификат для человека посередине соединения. CA в брандмауэре, который выдал этот сертификат (прокси-CA), вероятно, добавлен в Windows Trust Store, и этот Chrome будет доверять ему.

Но Git не использует Windows Trust Store и, таким образом, не знает об этом proxy CA. Поэтому вам нужно добавить proxy CA, используемый брандмауэром, в хранилище CA для Git, а не оригинальный CA, выдавший сертификат для Github.

решение2

Когда вы используете Chrome и получаете доступ к Github по протоколу HTTPS, вы просто проверяете цепочку сертификатов Github по встроенным корневым сертификатам в вашем браузере и в Windows.

Под капотом Gitextensions использует msysgit, который не обращается к сертификатам доверия Windows при построении цепочки сертификатов.

Из ошибки следует, что корневой сертификат, используемый Github, отсутствует в корневом пакете встроенного центра сертификации (CA). Это может быть связано с тем, что Gitextensions объединяет более старую версию msysgit или curl.

msysgit включает DigiCert High Assurance EV Root CAв свой пакет CA, и он там уже несколько лет. Найдите эту строку в файлеbin/curl-ca-bundle.crt

Проверьте, установлена ​​ли на вашем компьютере старая версия инструментов msysgit или mingw. Если да, очистите и переустановите. Наконец, ознакомьтесь с процедурой добавления сертификата msysgit, если вам нужно добавить сертификат.

Связанный контент