Während der Installation von Git auf meinem Windows-Computer habe ich für das HTTPS-Transport-Backend "Use the OpenSSL library" ausgewählt.
Ich möchte für HTTPS-Transport zu "Native Windows Secure Channel-Bibliothek" wechseln.
Ist dies ohne Neuinstallation von git unter Windows möglich?
Das Problem wurde vom Git für Windows-Entwickler behoben: https://github.com/git-for-windows/git/issues/1274
Ich habe die Einstellung für "schannel" oder "openssl" mit Git für Windows 2.14.2, 64 Bit in der Datei gefunden:
C:\Program Files\Git\mingw64\ect\gitconfig
Beispielkonfiguration für OpenSSL:
[http]
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = openssl
Beispielkonfiguration für Windows native:
[http]
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
Sie können diesen Thread vom Git für Windows-Betreuer auschecken:
Ja, es ist möglich und Sie können herausfinden, wie genau dies von .__ gemacht wird. den Quellcode für das Installationsprogramm überprüfen, der sich unter .__ befindet. https://github.com/git-for-windows/build-extra in der Installer/install.iss-Datei (diese Datei kann auch leicht durch einen
git grep "Secure Channel"
gefunden werden).Der relevante Teil ist, wenn das Installationsprogramm die GC_WinSSL-Option auf .__ testet. Interessanteres tun, als die Wahl des Benutzers aufzuzeichnen:
if RdbCurlVariant[GC_WinSSL].Checked and (not
ReplaceFile(BinDir+'curl-winssl\curl.exe',BinDir+'curl.exe') or not
ReplaceFile(BinDir+'curl-winssl\libcurl-4.dll',BinDir+'libcurl-4.dll'))
then begin
Log('Line {#__LINE__}: Replacing curl-openssl with curl-winssl failed.');
end;
Mit anderen Worten, das Installationsprogramm versucht einfach, die Dateien curl.exe und .__ zu ersetzen. libcurl-4.dll-Dateien in\mingw64\bin (oder dem 32-Bit-Äquivalent) von der Dateien in\mingw64\curl-winssl.
Dies wird nun offiziell mit Git 2.20 (Q4 2018) unterstützt: Auf Plattformen mit der letzten cURL-Bibliothek kann die Konfigurationsvariable http.sslBackend
verwendet werden, um zur Laufzeit ein anderes SSL-Backend auszuwählen.
Der Windows-Port verwendet diesen Mechanismus, um zwischen OpenSSL undSecure Channel zu wechseln, während er über das HTTPS-Protokoll spricht.
Siehe commit b67d40a (25. Oktober 2018) und Commit 21084e8 (15. Oktober 2018) von Johannes Schindelin (dscho
) .
Siehe commit 93aef7c (25. Oktober 2018) von Brendan Forster (shiftkey
) .
(Zusammengeführt durch Junio C Hamano - gitster
- in Festschreiben d7b1859 , 02. November 2018)
http
: Unterstützung für die Auswahl von SSL-Backends zur Laufzeit hinzufügenSeit Version 7.56.0 unterstützt curl die Kompilierung mit mehreren SSL Backends.
Dieser Patch fügt die Git-Seite dieser Funktion hinzu: Wenn Sie
http.sslBackend
auf "openssl
" oder "schannel
" setzen, kann Git für Windows jetzt SSL .__ auswählen. Backend zur Laufzeit.Dies ist unter Windows praktisch, da Secure Channel ("schannel") .__ ist. die native Lösung, die auf den Windows-Anmeldeinformationsspeicher zugreift, dadurch Ermöglicht die unternehmensweite Verwaltung von Zertifikaten.
Aus historischen Gründen muss Git für Windows OpenSSL weiterhin unterstützen, da war bisher das einzige unterstützte SSL-Backend in Git für Windows für fast ein Jahrzehnt.Der Patch wird seit über einem Jahr in Git für Windows gespeichert und ist als reif angesehen.