Git semble reconnaître la propriété http.sslcainfo de .gitconfig mais l'ignore lors de l'exécution? SEC_E_UNTRUSTED_ROOT


10

tous, j'ai une chaîne de certificats fonctionnelle (testable avec OpenSSL) mais je ne parviens pas à dire à Git de charger ces certificats.

Je reçois la même erreur « autorité racine non fiable » (SEC_E_UNTRUSTED_ROOT) indépendamment du fait que mes points de configuration git à un fichier existant ou une chaîne de certificats de faux.

Pour plus de détails, veuillez vérifier la capture d'écran ci-jointe.entrez la description de l'image ici

Paramètre que j'utilise .gitconfigpour un faux fichier:

sslCAInfo = C:/tmp/foobar.crt

ou, pour un fichier réel qui fonctionne avec OpenSSL:

sslCAInfo = C:/tmp/ca-bundle.crt

Transcription de la console:

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.

Vous avez une faute de frappe dans votre configuration git: tml au lieu de tmp
Tensibai

Je trouve étrange que git ne soulève pas d'erreur avec fakepath. Vous devriez vérifier les autres niveaux de configuration (global, utilisateur et référentiel), il y a probablement un repli quelque part
Tensibai

@Tensibai veuillez fournir des instructions ou un lien vers des documents, vous ne savez pas comment imprimer tout cela. par exemple, git config --global --list ne fonctionne pas.
Peter Muryshkin

Git config --get-all devrait faire pour afficher chaque configuration résultante du système, globale et locale (ne peut pas vérifier que je suis au téléphone, et c'est juste une supposition, la solution pourrait être set SSL_CERT_FILE=C:\tmp\ca-bundle.crtde dire à openssl où trouver le bundle
Tensibai

C:\git config --get-all-- => error: wrong number of arguments
Peter Muryshkin

Réponses:


2

J'ai été frappé par cela juste aujourd'hui après une nouvelle installation, alors voici comment je m'en suis sorti:

À partir de vos journaux (c'est moi qui souligne):

fatal: impossible d'accéder ...: schannel : next InitializeSecurityContext a échoué:

git est configuré pour utiliser schannel (implémentation native de Windows), mais schannel utilise le bundle de certificats Windows et non le bundle cainfo.

Pour passer à openssl pour utiliser un fichier de bundle personnalisé, utilisez ceci:

git config --system http.sslbackend openssl

Et maintenant, git honorera le bundle CA passé dans http.sslcainfo.

Alternativement, comme mon erreur était un problème de suite de chiffrement, vous pouvez être intéressé par les liens suivants:


1

J'ai eu quelque chose de similaire il y a un an, alors j'espère que je me souviens -

Vous devez avoir toute la chaîne de certificats dans le fichier crt. Vérifiez que vous disposez de tous les certificats intermédiaires entre votre certificat bitbucket et celui racine (inclus).

Vous pouvez voir le format correct pour les ajouter au format pem (ce qui, je crois, est votre cas avec le crt) ici .

Mon certificat a été signé par Comodo lorsque j'ai eu ce problème, leur certificat et l'intermédiaire n'étaient pas dans le ca-bundle par défaut fourni par la plupart des systèmes.

J'espère que ça t'as aidé!

Edit: Maintenant, j'ai remarqué que cela se produit également avec le faux - essayez de vérifier les certificats connus par défaut du système (chaque système en a un). Sous Windows, vous pouvez accéder au composant logiciel enfichable mmc des certificats Windows .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.