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

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

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

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

РЕДАКТИРОВАТЬ: больше информации:

На моей машине я не вижу mysysGit, но я вижу mingw/curl, поэтому я предполагаю, что Git использует их. Очевидно, они не используют доверенные сертификаты Windows при построении цепочки сертификатов. Ошибка, которую я получаю, проблема с сертификатом S SL: самозаверяющий сертификат в цепочке сертификатов, указывает на то, что корневой сертификат, используемый Git/Github, отсутствует в корневом комплекте встроенного центра сертификации (CA). Как указал @Akber Choudhry, сертификат CA, который является корнем цепочки сертификатов, обслуживаемых сервером Github SSL, является корневым CA DigiCert High Assurance EV, и я вижу, что CA в C:\Program Files (x86)\Git\ Bin \ завиток-ча-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"

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

2 ответа2

3

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

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

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .