Git, схоже, розпізнає властивість http.sslcainfo від .gitconfig, але ігнорує його при виконанні? SEC_E_UNTRUSTED_ROOT


10

все, у мене є ланцюжок робочих сертифікатів (перевіряється з 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.

У вас є помилка
друку

Мені здається, що дивне git не викликає помилок з підробкою. Вам слід перевірити інші рівні конфігурації (глобальний, користувальницький і репо), можливо, десь є резервний запас
Tensibai

@Tensibai, будь ласка, надайте інструкції чи посилання на документи, не знаєте, як роздрукувати все це. наприклад, git config --global --list не працює.
Петро Муришкін

Git config --get-all повинен зробити, щоб показати всю отриману конфігурацію з системної, глобальної та локальної (не можу підтвердити, що я перебуваю по телефону, і це лише здогад, вирішення питання може бути, set SSL_CERT_FILE=C:\tmp\ca-bundle.crtщоб сказати openssl, де знайти пакет
Tensibai

C:\git config --get-all-- => error: wrong number of arguments
Петро Муришкін

Відповіді:


2

Мене сьогодні вдарило після нової установки, ось ось як я перебрав це:

З ваших журналів (акцент - мій):

фатально: не вдається отримати доступ ...: schannel : next InitializeSecurityContext не вдалося:

git налаштований на використання schannel (вітчизняна реалізація Windows), але schannel використовує пакет certs, а не пакет cainfo.

Для переключення на openssl використовувати спеціальний файл пакета, використовуйте це:

git config --system http.sslbackend openssl

І тепер git буде вшановувати пакет CA, переданий у http.sslcainfo.

Крім того, як моя помилка була проблемою пакету cypher, вас можуть зацікавити наступні посилання:


1

У мене було щось подібне рік тому, я сподіваюся, що пам’ятаю -

У вас повинен бути весь ланцюжок сертифікатів у файлі crt. Переконайтеся, що у вас є всі проміжні сертифікати між вашим сертифікатом bitbucket та кореневим (включно).

Ви можете подивитися правильний формат для додавання їх у форматі pem (на мою думку, це ваш випадок із crt) тут .

Мій сертифікат був підписаний компанією Comodo, коли я мав цю проблему, їх сертифікат та проміжний засіб не знаходилися в пакеті ca за замовчуванням, що постачається більшістю систем.

Сподіваюся, що це допомагає!

Редагувати: Тепер я помітив, що трапляється і з підробленим - спробуйте перевірити відомі сертифікати системи за замовчуванням (у кожної системи такі). У Windows можна перейти до оснастки сертифікатів Windows mmc .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.