it-swarm.com.de

Wechseln Sie zu "Native Windows Secure Channel-Bibliothek" von "OpenSSL-Bibliothek" unter Windows Git, ohne neu zu installieren.

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?

5
Saqib Ali

Das Problem wurde vom Git für Windows-Entwickler behoben: https://github.com/git-for-windows/git/issues/1274

0
Saqib Ali

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
3
JasonS

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;

(Siehe https://github.com/git-for-windows/build-extra/blob/97c8294b584ae4b99059a1194a5eba24ee2ff1ab/installer/install.iss#L1774 )

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. 

1
VonC

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ügen

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

1
VonC