web-dev-qa-db-fra.com

Basculez sur "Bibliothèque native Windows Secure Channel" à partir de "Bibliothèque OpenSSL" sous Windows Git, sans réinstaller?

Lors de l'installation de Git sur ma machine Windows, j'ai sélectionné "Utiliser la bibliothèque OpenSSL" pour le backend de transport HTTPS.

Je souhaite basculer vers "Bibliothèque native Windows Secure Channel" pour le transport HTTPS.

Est-ce possible sans réinstaller git sous Windows?

5
Saqib Ali

Le problème a été résolu par le développeur Git for Windows: https://github.com/git-for-windows/git/issues/1274

0
Saqib Ali

J'ai trouvé le réglage pour "schannel" ou "openssl" avec Git pour Windows 2.14.2, fichier 64 bits: 

C:\Program Files\Git\mingw64\ect\gitconfig

Exemple de configuration pour OpenSSL:

[http]
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = openssl

Exemple de configuration pour Windows natif:

[http]
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
3
JasonS

Vous pouvez consulter ce fil à partir du responsable de Git for Windows:

Oui, c'est possible, et vous pouvez découvrir comment exactement cela se fait par inspecter le code source pour le programme d'installation, qui est à https://github.com/git-for-windows/build-extra dans le fichier fichier installer/install.iss (ce fichier est également facilement trouvé par un git grep "Secure Channel").

La partie pertinente est celle où le programme d’installation teste l’option GC_WinSSL sur faire des choses plus intéressantes que d'enregistrer le choix de l'utilisateur:

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;

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

En d'autres termes, le programme d'installation tentera simplement de remplacer curl.exe et Fichiers libcurl-4.dll dans\mingw64\bin (ou l’équivalent 32 bits) par le fichier fichiers dans\mingw64\curl-winssl. 

1
VonC

Ceci est maintenant officiellement pris en charge avec Git 2.20 (T4 2018): sur les plates-formes avec la bibliothèque cURL récente, la variable de configuration http.sslBackend peut être utilisée pour choisir un autre serveur dorsal SSL lors de l'exécution.
Le port Windows utilise ce mécanisme pour basculer entre OpenSSL et Secure Channel lors d’une conversation sur le protocole HTTPS.

Voir commit b67d40a (25 octobre 2018) et commit 21084e8 (15 octobre 2018) de Johannes Schindelin (dscho) .
Voir commit 93aef7c (25 octobre 2018) de Brendan Forster (shiftkey) }.
(Fusionné par Junio ​​C Hamano - gitster - à commit d7b1859 , 2 nov. 2018)

http: ajout du support pour la sélection des serveurs SSL lors de l'exécution

Depuis la version 7.56.0, Curl prend en charge la compilation avec plusieurs SSL backends.

Ce correctif ajoute le côté Git de cette fonctionnalité: en définissant http.sslBackend sur "openssl" ou "schannel", Git pour Windows peut maintenant choisir le protocole SSL backend à l'exécution.

Ceci est pratique sous Windows car Secure Channel ("schannel") est la solution native accédant à la base de données d’identifications Windows, par conséquent permettant une gestion à l'échelle de l'entreprise des certificats.
Pour des raisons historiques, Git pour Windows doit toujours supporter OpenSSL, comme il l’a déjà fait était auparavant le seul serveur SSL pris en charge dans Git pour Windows pour presque une décennie.

Le correctif est disponible dans Git pour Windows depuis plus d’un an et porte le numéro considéré comme mature.

1
VonC