web-dev-qa-db-fra.com

github: échec de la vérification du certificat du serveur

Je viens de créer un compte github et un référentiel, mais lorsque vous essayez de créer une copie de travail locale à l'aide de l'URL recommandée par

git clone https://github.com/<user>/<project>.git

Je reçois une erreur comme

fatal: impossible d'accéder à ' https://github.com/<user>/<project>.git ': la vérification du certificat de serveur a échoué. CAfile: /home/<user>/.ssl/trusted.pem CRLfile: aucun

Je suis sur Debian Jessie, et j'aurais cru que Debian et GitHub fourniraient/compteraient sur une sélection d'AC communément acceptées, mais apparemment, mon système ne fait pas confiance au certificat de GibHub.

N'importe quel moyen simple de résoudre ce problème (sans le hack "GIT_SSL_NO_VERIFY = true" fréquemment recommandé et les solutions de rechange similaires)?

MODIFIER:

Information additionnelle:

  • Le package ca-certificate est installé.
  • L'installation des certificats de cacert.org comme Suggérée par @VonC n'a rien changé.
  • Mon fichier personnel ~/.ssl/trusted.pem contient quelques entrées, mais pour être honnête, je ne me souviens pas de la provenance des certificats ajoutés ...
  • Lors de la suppression de ~/.ssl/trusted.pem, le message d'erreur git devient:

    fatal: unable to access 'https://github.com/tcrass/scans2jpg.git/': Problem with the SSL CA cert (path? access rights?)
    

MODIFIER:

Les conseils de @ VonC concernant l'option git https.sslCAinfo m'ont mis sur la bonne voie. Je viens d'ajouter les autorités de certification téléchargées cacert.org à mon confiance.

12
Torsten Crass

Assurez-vous d’abord que les certificats sont installés sur votre Debian dans /etc/ssl/certs.

Sinon, réinstallez-les:

Sudo apt-get install --reinstall ca-certificates

Puisque ce paquetage n'inclut pas root certificats , ajoutez:

Sudo mkdir /usr/local/share/ca-certificates/cacert.org
Sudo wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
Sudo update-ca-certificates

Assurez-vous que votre git référence ces CA:

git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt

Jason C mentionne une autre cause potentielle ( dans les commentaires ):

C'était l'horloge. Le serveur NTP était en panne, l'horloge système n'était pas réglée correctement, je n'avais pas remarqué ou pensé à vérifier initialement et l'heure incorrecte entraînait l'échec de la vérification. 

Les certificats sont sensibles au temps .

34
VonC

Vous pouvez également désactiver la vérification SSL (si le projet ne nécessite pas un niveau de sécurité élevé autre que le nom d'utilisateur/mot de passe) en tapant: 

git config --global http.sslverify false

profiter git :)

34
mkebri

Il peut s'agir également d'un certificat auto-signé, etc. Désactiver la vérification SSL au niveau mondial est dangereux. Vous pouvez installer le certificat pour qu'il soit visible pour le système, mais le certificat doit être parfaitement correct. 

Ou vous pouvez cloner avec un paramètre de configuration unique, la commande sera donc:

git clone -c http.sslverify=false https://myserver/<user>/<project>.git;

GIT se souviendra de la valeur false, vous pouvez la vérifier dans le fichier <project>/.git/config.

8
dmatej

Essayez de vous connecter au référentiel avec l’URL: http://github.com/<user>/<project>.git (http accept https)

Dans votre cas, vous devriez cloner comme ceci: 

git clone http://github.com/<user>/<project>.git