Git sembra riconoscere la proprietà http.sslcainfo da .gitconfig ma la ignora durante l'esecuzione? SEC_E_UNTRUSTED_ROOT


10

tutto, ho una catena di certificati funzionante (testabile con OpenSSL) ma in qualche modo non riesco a dire a Git di caricare questi certificati.

Ottengo lo stesso errore di "autorità radice non attendibile" (SEC_E_UNTRUSTED_ROOT) indipendentemente dal fatto che la mia configurazione git punti a un file di catena di certificati esistente o falso.

Per i dettagli, consultare lo screenshot allegato.inserisci qui la descrizione dell'immagine

Impostazione che uso .gitconfigper file falsi:

sslCAInfo = C:/tmp/foobar.crt

oppure, per il file reale che funziona con OpenSSL:

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

Trascrizione 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.

Hai un refuso nella tua configurazione git: tml invece di tmp
Tensibai

Trovo strano git non solleva un errore con fakepath. Dovresti verificare altri livelli di configurazione (globale, utente e repository) probabilmente c'è un fallback da qualche parte
Tensibai,

@Tensibai ti preghiamo di fornire istruzioni o un link a documenti, non sei sicuro di come stampare tutto ciò. ad esempio git config --global --list non funziona.
Peter Muryshkin,

Git config --get-all dovrebbe fare per mostrare tutte le configurazioni risultanti dal sistema, globale e locale (non posso verificare che io sia al telefono, ed è solo una supposizione, soluzione alternativa potrebbe essere quella set SSL_CERT_FILE=C:\tmp\ca-bundle.crtdi dire a openssl dove trovare il bundle
Tensibai

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

Risposte:


2

Sono stato colpito da questo proprio oggi dopo una nuova installazione, quindi ecco come l'ho superato:

Dai tuoi registri (l'enfasi è mia):

fatale: impossibile accedere ...: schannel : successivo InitializeSecurityContext non riuscito:

git è configurato per usare schannel (implementazione nativa di Windows), ma schannel usa un bundle di Windows Certs e non un bundle di cainfo.

Per passare a openssl per utilizzare un file bundle personalizzato, utilizzare questo:

git config --system http.sslbackend openssl

E ora git onorerà il bundle CA passato in http.sslcainfo.

In alternativa, poiché il mio errore era un problema della suite di cifratura, potresti essere interessato dai seguenti link:


1

Ho avuto qualcosa di simile un anno fa, quindi spero di ricordare -

Dovresti avere tutta la catena di certificati nel file crt. Verifica di disporre di tutti i certificati intermedi tra il tuo certificato bitbucket e quello principale (incluso).

Puoi dare un'occhiata al formato corretto per aggiungerli nel formato pem (che credo sia il tuo caso con la CRT) qui .

Il mio certificato è stato firmato da Comodo quando ho avuto quel problema, il loro certificato e l'intermedio non erano nel ca-bundle predefinito fornito dalla maggior parte dei sistemi.

Spero che aiuti!

Modifica: ora ho notato che succede anche con quello falso - prova a controllare i certificati noti predefiniti del sistema (ogni sistema ha tale). Su Windows è possibile accedere allo snap-in mmc Certificati di Windows .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.