web-dev-qa-db-fra.com

Comment configurer Git pour approuver les certificats du magasin de certificats Windows?

Actuellement, j'ai l'entrée suivante dans mon .gitconfig dans mon répertoire utilisateur.

...
[http]
    sslCAInfo=C:\\Users\\julian.lettner\\.ssh\\git-test.pem
...

Cela définit le certificat à utiliser lors de l'interaction avec le serveur git (requis par le serveur git de mon entreprise).

Mais maintenant, je ne peux pas cloner d'autres référentiels (par exemple un référentiel public sur GitHub), car le client utilise toujours le certificat configuré qui est rejeté par d'autres serveurs.

Comment contourner ce problème de certification? Puis-je configurer Git pour utiliser le magasin de certificats Windows pour l'authentification?

30
Julian Lettner

À partir de Git pour Windows 2.14, vous pouvez maintenant configurer Git pour utiliser SChannel, la couche réseau intégrée de Windows. Cela signifie qu'il utilisera le mécanisme de stockage des certificats Windows et que vous n'avez pas besoin de configurer explicitement le mécanisme de stockage curl CA.

Depuis Git pour Windows 2.14 notes de version :

Il est désormais possible de basculer entre Secure Channel et OpenSSL pour le transport HTTPS de Git en définissant http.sslBackend config variable à "openssl" ou "schannel"; C'est maintenant aussi la méthode utilisée par le programme d'installation (plutôt que de copier libcurl-4.dll fichiers autour).

Vous pouvez choisir le nouveau mécanisme SChannel lors de l'installation de Git pour Windows 2.14. Vous pouvez également mettre à jour une installation existante pour utiliser SChannel en exécutant:

git config --global http.sslBackend schannel

Une fois que vous avez configuré cela, Git utilisera le magasin de certificats Windows et ne devrait pas exiger (et, en fait, devrait ignorer) le http.sslCAInfo paramètre de configuration.

68
Edward Thomson

Utilisation:

git config  --local ...

Pour spécifier les paramètres par référentiel. Les paramètres locaux sont stockés dans le .git répertoire.

Un aperçu des trois emplacements où git peut stocker les paramètres:

  • --local: Spécifique au référentiel, <repo_dir>/.git/config
  • --global: Spécifique à l'utilisateur, ~/.gitconfig
  • --system: Défaut du système, /etc/gitconfig

Des paramètres plus spécifiques remplacent des paramètres plus généraux, c'est-à-dire que les substitutions locales sont globales et système.

4
Andomar