Alles in allem habe ich eine funktionierende Zertifikatskette (mit OpenSSL testbar), aber irgendwie kann ich Git nicht anweisen, diese Zertifikate zu laden.
Ich erhalte den gleichen Fehler "nicht vertrauenswürdige Stammberechtigung" (SEC_E_UNTRUSTED_ROOT), unabhängig davon, ob meine Git-Konfiguration auf eine vorhandene oder eine gefälschte Zertifikatkettendatei verweist.
Weitere Informationen finden Sie im beigefügten Screenshot.
Einstellung, die ich .gitconfig
für gefälschte Dateien verwende:
sslCAInfo = C:/tmp/foobar.crt
oder für echte Dateien, die mit OpenSSL funktionieren:
sslCAInfo = C:/tmp/ca-bundle.crt
Konsolentranskript:
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
,C:\git config --get-all-- => error: wrong number of arguments
Antworten:
Wurde erst heute nach einer Neuinstallation davon getroffen. So bin ich darüber hinweggekommen:
Aus Ihren Protokollen (Schwerpunkt liegt bei mir):
git ist für die Verwendung von schannel (Windows native Implementierung) konfiguriert, aber schannel verwendet das Windows Certs-Bundle und nicht das Cainfo-Bundle.
Um zu openssl zu wechseln und eine benutzerdefinierte Bundle-Datei zu verwenden, gehen Sie wie folgt vor:
git config --system http.sslbackend openssl
Und jetzt wird git das in http.sslcainfo übergebene CA-Bundle ehren.
Alternativ, da mein Fehler ein Problem der Cypher Suite war, könnten Sie über die folgenden Links interessiert sein:
quelle
Ich hatte vor einem Jahr etwas Ähnliches, also hoffe ich, dass ich mich erinnere -
Sie sollten die gesamte Zertifikatkette in der CRT-Datei haben. Stellen Sie sicher, dass Sie alle Zwischenzertifikate zwischen Ihrem Bitbucket-Zertifikat und dem Root-Zertifikat (einschließlich) haben.
Sie können zum Anhängen von ihnen im pem - Format in das richtige Format einen Blick (was ich glaube Ihr Fall mit dem crt ist) über hier .
Mein Zertifikat wurde von Comodo signiert, als ich dieses Problem hatte. Das Zertifikat und das Zwischenprodukt waren nicht im Standard-Ca-Bundle enthalten, das von den meisten Systemen bereitgestellt wurde.
Hoffentlich hilft das!
Bearbeiten: Jetzt ist mir aufgefallen, dass es auch mit dem gefälschten passiert - versuchen Sie, die bekannten Standardzertifikate des Systems zu überprüfen (jedes System hat solche). Unter Windows können Sie das MMC-Snap-In für Windows-Zertifikate aufrufen .
quelle