все, у меня есть рабочая цепочка сертификатов (тестируемая с OpenSSL), но как-то мне не удается сказать Git загрузить эти сертификаты.
Я получаю ту же ошибку «недоверенного корневого администратора» (SEC_E_UNTRUSTED_ROOT) независимо от того, указывает ли моя конфигурация git на существующий или поддельный файл цепочки сертификатов.
Для получения подробной информации, пожалуйста, проверьте прикрепленный скриншот.
Настройка, которую я использую .gitconfig
для поддельного файла:
sslCAInfo = C:/tmp/foobar.crt
или для реального файла, который работает с OpenSSL:
sslCAInfo = C:/tmp/ca-bundle.crt
Консольная стенограмма:
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.
set SSL_CERT_FILE=C:\tmp\ca-bundle.crt
чтобы сообщить openssl, где найти пакетC:\git config --get-all-- => error: wrong number of arguments
Ответы:
Это произошло сегодня, после новой установки, и вот как я с этим справился:
Из ваших логов (акцент мой):
git настроен на использование schannel (собственная реализация Windows), но schannel использует пакет сертификатов Windows, а не пакет cainfo.
Чтобы переключиться на openssl для использования собственного файла комплекта, используйте это:
git config --system http.sslbackend openssl
И теперь git будет соблюдать пакет CA, переданный в http.sslcainfo.
В качестве альтернативы, поскольку моя ошибка была проблемой Cypher Suite, вас могут заинтересовать следующие ссылки:
источник
У меня было нечто подобное год назад, поэтому я надеюсь, что я помню -
У вас должна быть вся цепочка сертификатов в файле crt. Убедитесь, что у вас есть все промежуточные сертификаты между вашим сертификатом bitbucket и корневым (включительно).
Вы можете взглянуть на правильный формат для добавления их в формате pem (который, я считаю, ваш случай с crt) здесь .
Мой сертификат был подписан Comodo, когда у меня возникла эта проблема, их сертификат и промежуточное соединение не входили в стандартный пакет, поставляемый большинством систем.
Надеюсь, это поможет!
Изменить: Теперь я заметил, что это происходит и с поддельным - попробуйте проверить системные сертификаты, известные по умолчанию (у каждой системы есть такие). На окнах вы можете перейти к оснастке Windows Certificates mmc .
источник