За брандмауэром, используя 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, если вам нужно добавить сертификат.