web-dev-qa-db-fra.com

Ajout d'un certificat SSL auto-signé sans désactiver ceux signés par l'autorité

J'ai un serveur d'entreprise git fonctionnant via https en utilisant un certificat auto-signé. Le clone local contient deux télécommandes - l'origine pointant vers ce serveur et une autre pointant vers github. Par défaut, l'extraction à partir de l'origine échoue:

$ git pull
fatal: unable to access 'https://[email protected]/git/fizzbuzz.git/': SSL certificate problem: self signed certificate

La télécommande github fonctionne bien.

Il existe deux solutions souvent suggérées:

git config http.sslVerify false

ce qui est une mauvaise idée, et celle suggérée à configurer Git pour accepter un certificat de serveur auto-signé particulier pour une télécommande https particulière :

git config http.sslCAInfo <downloaded certificate>.pem

qui corrige l'extraction d'Origin, mais casse la télécommande github:

$ git pull github
fatal: unable to access 'https://github.com/user/fizzbuzz.git/': SSL certificate problem: unable to get local issuer certificate

Comment faire fonctionner l'extraction depuis le serveur d'entreprise sans interrompre l'extraction depuis github?

29
Michael Ivko

Si vous utilisez Git 1.8.5+ (août 2013), vous pouvez spécifier les directives http par URL (!) .

Dans ton cas:

git config --global http."https://code.example.com/".sslVerify false
#
# or, if not on default 443 port:
#
git config --global http."https://code.example.com:<aPort>/".sslVerify false

Cela désactiverait la vérification SSL uniquement pour code.example.com, pas pour les autres URL.

Ou:

git config --global http."https://code.example.com/".sslCAInfo <downloaded certificate>.pem

Même idée: sslCAInfo pointerait vers <downloaded certificate>.pem seulement pour code.example.com URL.

Il est possible d'ajouter votre certificat dans le magasin de certificats du système Git, qui, avec git-for-windows , serait dans C:\path\to\PortableGit-2.6.1-64-bit\usr\ssl\certs\ca-bundle.crt.
Cependant, ce n'est pas la meilleure pratique, sauf si vous devez distribuer une distribution Git avec des certificats internes.

52
VonC

Depuis la version 2.5.0 de Git pour Windows (git-for-windows.github.io), le fichier de certificat installé a été déplacé vers "C:\Program Files (x86)\Git\mingw32\ssl\certs\ca-bundle. crt ". Vous devez ajouter vos certificats dans ce fichier.

4
super_kamil