Je suis coincé derrière un pare-feu, je dois donc utiliser HTTPS pour accéder à mon référentiel GitHub. J'utilise cygwin 1.7.7 sur Windows XP.
J'ai essayé de régler la télécommande sur https://[email protected]/username/ExcelANT.git
, mais en poussant les invites pour un mot de passe, mais je ne fais rien une fois que je l'ai entré.
https://username:<password>github.com/username/ExcelANT.git
et cloner le dépôt vide à partir de zéro, mais à chaque fois, cela me donne la même erreur
erreur: problème de certificat SSL, vérifiez que le certificat CA est OK. Détails:
erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: la vérification du certificat a échoué lors de l'accès à https://github.com/username/ExcelANT.git/info/refs
Allumer GIT_CURL_VERBOSE=1
me donne
* À propos de se connecter () au port github.com 443 (# 0)
* Essayer 207.97.227.239 ... * définir avec succès les emplacements de vérification des certificats:
* CAfile: aucun
CApath: / usr / ssl / certs
* Problème de certificat SSL, vérifier que le certificat CA est OK. Détails:
erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: échec de la vérification du certificat
* expiration effacée
* fermeture de la connexion # 0
* sur le point de se connecter () au port github.com 443 (# 0)
* tentative 207.97.227.239 ... * tentative de configuration réussie du certificat vérifiez les emplacements:
* CAfile: aucun
CApath: / usr / ssl / certs
* Problème de certificat SSL, vérifiez que le certificat CA est OK. Détails:
erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: échec de la vérification du certificat
* Expiration effacée
* Fermeture de la connexion # 0
erreur: problème de certificat SSL, vérifiez que le certificat CA est OK. Détails:
erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: la vérification du certificat a échoué lors de l'accès à https://github.com/username/ExcelANT.git/info/refs
fatal: HTTP request failed
Est-ce un problème avec mon pare-feu, cygwin ou quoi?
Je n'avais pas défini le proxy HTTP dans la configuration Git, mais c'est un serveur ISA qui a besoin d'une authentification NTLM, pas basique, donc à moins que quelqu'un sache comment forcer git à utiliser NTLM, je suis saboté.
Réponses:
N'hésitez pas à ignorer cette réponse si vous souhaitez résoudre le problème des certificats. Cette réponse traite du tunneling ssh à travers le pare-feu, ce qui est à mon humble avis une meilleure solution pour traiter les pare-feu / proxy.
Il existe un meilleur moyen que d'utiliser l'accès http et c'est d'utiliser le service ssh offert par github sur le port 443 du serveur ssh.github.com.
Nous utilisons un outil appelé tire-bouchon. Ceci est disponible pour CygWin (via la configuration à partir de la page d'accueil de cygwin) et Linux à l'aide de votre outil d'emballage préféré. Pour MacOSX, il est disponible auprès de macports et infuser au moins.
La ligne de commande est la suivante:
Le proxyhost et le proxyport sont les coordonnées du proxy https. L'hôte cible et le port cible sont l'emplacement de l'hôte vers lequel effectuer le tunnel. Le fichier d'authentification est un fichier texte avec 1 ligne contenant votre nom d'utilisateur / mot de passe de serveur proxy séparés par deux points
par exemple:
Installation pour utiliser le protocole ssh "normal" pour la communication git
En ajoutant ceci à l'
~/.ssh/config
astuce, cette astuce peut être utilisée pour les connexions ssh normales.maintenant, vous pouvez tester son fonctionnement par ssh-ing vers gitproxy
(Remarque: si vous ne vous êtes jamais connecté à github auparavant, ssh vous demandera d'ajouter la clé du serveur au fichier hosts connu. Si vous êtes paranoïaque, il est recommandé de vérifier l'empreinte RSA par rapport à celle affichée sur le site github où vous téléchargé votre clé).
Une légère variante de cette méthode est le cas lorsque vous devez accéder à un référentiel avec une autre clé, par exemple pour séparer votre compte privé de votre compte professionnel.
prendre plaisir!
Nous l'utilisons depuis des années sur Linux, Mac et Windows.
Si vous le souhaitez, vous pouvez en savoir plus à ce sujet dans ce billet de blog
la source
Host ssh.github.com >User oharab >Hostname ssh.github.com >Port 443 >PreferredAuthentications publickey >IdentityFile ~/.ssh/id_rsa
et le clonage à l'aide de git clone l'ont[email protected]:oharab/log4vba.git
mis en place en un rien de temps.Le problème est que vous n'avez aucun certificat d'autorité de certification installé sur votre système. Et ces certificats ne peuvent pas être installés avec setup.exe de cygwin.
Mise à jour: Installez le package Net / ca-certificats dans cygwin (merci dirkjot)
Il existe deux solutions:
Installez réellement les certificats racine. Curl guys extrait pour vous les certificats de Mozilla .
cacert.pem
fichier est ce que vous recherchez. Ce fichier contient> 250 certificats CA (je ne sais pas comment faire confiance à ce nombre de personnes). Vous devez télécharger ce fichier, le diviser en certificats individuels, les placer dans / usr / ssl / certs (votre CApath) et les indexer.Voici comment faire. Avec cygwin setup.exe, installez les packages curl et openssl:
Important : Pour utiliser,
c_rehash
vous devezopenssl-perl
également installer .Ignorez la vérification du certificat SSL.
AVERTISSEMENT: la désactivation de la vérification des certificats SSL a des implications sur la sécurité. Sans vérification de l'authenticité des connexions SSL / HTTPS, un attaquant malveillant peut usurper l'identité d'un point de terminaison de confiance (tel que GitHub ou un autre hôte Git distant), et vous serez vulnérable à une attaque Man-in-the-Middle . Assurez-vous de bien comprendre les problèmes de sécurité et votre modèle de menace avant de l'utiliser comme solution.
la source
wget -O - http://curl.haxx.se/ca/cacert.pem | awk 'split_after==1{n++;split_a fter=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
fatal: https://code.google.com/.../info/refs not found: did you run git update-server-info on the server?
peut - être que cela fonctionnera après le redémarrage?ca-certificates
paquet cygwin pour obtenir les certificats racine manquants. Pourquoi cette réponse a-t-elle eu autant de succès?Remarque: la désactivation de la vérification SSL a des implications sur la sécurité . Il permet à Man in the Middle d'attaquer lorsque vous utilisez Git pour transférer des données sur un réseau. Assurez-vous de bien comprendre les implications de sécurité avant de l'utiliser comme solution. Ou mieux encore, installez les certificats racine.
Une façon consiste à désactiver la vérification SSL CERT:
Cela empêchera CURL de vérifier la certification HTTPS.
Pour un seul référentiel:
la source
Je voulais que Git utilise le paquet de certificats mis à jour sans remplacer celui que tout mon système utilise. Voici comment demander à Git d'utiliser un fichier spécifique dans mon répertoire personnel:
Maintenant, mettez
.gitconfig
à jour pour l'utiliser pour la vérification par les pairs:Notez que j'utilise un chemin absolu. Git ne fait aucune extension de chemin ici, donc vous ne pouvez pas l'utiliser
~
sans un vilain coup de coude. Alternativement, vous pouvez ignorer le fichier de configuration et définir le chemin via la variable d'environnement à laGIT_SSL_CAINFO
place.Pour résoudre ce problème, définissez
GIT_CURL_VERBOSE=1
. Le chemin du fichier CA utilisé par Git sera affiché sur les lignes commençant par "CAfile:" dans la sortie.la source
/etc/ssl/certs/ca-certificates.crt
sur mon Ubuntu 8.04 LTS par ce fichier et cela a fonctionné comme par magie!git config --global http.sslCAinfo "$HOME/certs/cacert.pem"
Notez que pour que cela fonctionne (installation RVM sur CentOS 5.6), j'ai dû exécuter ce qui suit:
export GIT_SSL_NO_VERIFY=true
et après cela, la procédure d'installation standard pour curling l'installateur RVM dans bash a fonctionné un régal :)
la source
Une solution très simple: remplacez https: // par git: //
Utilisez git: //the.repository au lieu de https: //the.repository et cela fonctionnera.
J'ai eu ce problème sur Windows avec TortoiseGit et cela l'a résolu.
la source
git://
. Comme indiqué dans cette réponse ci - dessus , la désactivation de la vérification SSL est un risque pour la sécurité.git://
protocole utilise SSH, qui utilise des paires de clés publiques et privées SSH pour l'authentification et le chiffrement, au lieu d'un certificat SSL.git://
n'utilise pas SSH. Voir Le protocole SSH et le protocole Git .git://
confondre avec[email protected]:user/project.git
, qui est la syntaxe SCP-ish .Comme la réponse la plus populaire (par Alexey Vishentsev) l'a:
Cependant, cette dernière affirmation est fausse (maintenant, ou a toujours été, je ne sais pas).
Tout ce que vous avez à faire est d'aller dans la configuration de cygwin et d'inclure le paquet 'ca-certificats' (il est sous Net). Cela a fait l'affaire pour moi.
la source
CAfile: /etc/ssl/ca-bundle.crt
alors que le package cygwin ca-certificats s'installe/usr/ssl/certs/ca-bundle.crt
. Par conséquent, a dû modifier~/.gitconfig
pour spécifier l'emplacement:[http]
puissslCAinfo = /usr/ssl/certs/ca-bundle.crt
sudo ln -s /usr/ssl/certs/ca-bundle.crt /etc/ssl/
ca-certificates
.error: SSL certificate problem, verify that the CA cert is OK.
Je connais la liste de questions d'origine Cygwin, mais voici la solution pour CentOS:
Source: http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/
la source
yum update openssl
, ce qui met également à jour le ca-bundle.sha256sum /etc/pki/tls/certs/ca-bundle.crt
pour être sûr que vous avez obtenu le bon fichier.Pour cloner sur Windows tout en définissant la vérification SSL sur false:
Si vous souhaitez cloner sans modifier vos paramètres globaux.
la source
Sur CentOS 5.x, un simple
yum update openssl
paquet mis à jour openssl qui a mis à jour leca-bundle.crt
fichier système et résolu le problème pour moi.La même chose peut être vraie pour d'autres distributions.
la source
Si tout ce que vous voulez faire est simplement d'utiliser le client Cygwin git avec github.com, il existe un moyen beaucoup plus simple sans avoir à passer par les tracas du téléchargement, de l'extraction, de la conversion et du fractionnement des fichiers cert. Procédez comme suit (je suppose que Windows XP avec Cygwin et Firefox)
C'est ça.
Bien sûr, cela n'installe qu'une seule hiérarchie de certificats, celle dont vous avez besoin pour github. Vous pouvez bien sûr utiliser cette méthode avec n'importe quel autre site sans avoir à installer 200 certs de sites auxquels vous ne faites pas (nécessairement) confiance.
la source
Si vous êtes sous Mac OS X, vous pouvez installer le paquet ca-cert via
homebrew
:La formule installe l'ensemble de certificats sur votre partage via:
La
share
méthode n'est qu'un alias/usr/local/share
et le paquet curl-ca est fourni parMozilla
. C'est ce que vous voyez être référencé dans beaucoup de problèmes. J'espère que cela aide, car il n'est pas très simple de savoir comment aborder cela sur Mac OS X.brew install curl
ne vous apportera pas grand-chose non plus, car il ne s'agit que d'un fût et ne sera pas lié (l'exécutionwhich curl
sera toujours sortie/usr/bin/curl
, qui est la valeur par défaut fournie avec votre OS). Ce message peut également avoir une certaine valeur .Vous devrez bien sûr désactiver SSL avant de l'installer
homebrew
car il s'agit d'un dépôt git. Faites ce que curl dit quand il fait une erreur lors de la vérification SSL et:Une fois que vous êtes
homebrew
installé aveccurl-ca-bundle
, supprimez.curlrc
et essayez de cloner un dépôt sur github. Assurez-vous qu'il n'y a pas d'erreurs et vous serez prêt à partir.REMARQUE: Si vous y avez recours
.curlrc
, veuillez le supprimer de votre système au moment où vous avez terminé les tests. Ce fichier peut provoquer des problèmes majeurs, alors utilisez-le à des fins temporaires et avec prudence.brew doctor
se plaindra au cas où vous oublieriez de le purger de votre système).REMARQUE: si vous mettez à jour votre version de git, vous devrez réexécuter cette commande car vos paramètres système seront effacés (ils sont stockés par rapport au binaire git basé sur la version).
Donc après avoir couru:
Si vous obtenez une nouvelle version de git, réexécutez simplement:
Et vous serez prêt.
Enfin, si vous avez une nouvelle version de git, exécutez:
devrait vous donner une erreur dans le sens de
fatal: unable to read config file '/usr/local/Cellar/git/1.8.2.2/etc/gitconfig'
c'est votre astuce dont vous avez besoin pour dire à git où se trouve le ca-bundle Mozilla.
MISE À JOUR:
.curlrc
peut ou non être le remède à votre problème. Dans tous les cas, installez simplement le ca-bundle Mozilla sur votre machine, que vous deviez le télécharger manuellement ou non. Voilà ce qui est important ici. Une fois que vous obtenez le ca-bundle, vous êtes prêt à partir. Exécutez simplement la commande git config et pointez git vers le ca-bundle.MISE À JOUR
J'ai récemment dû ajouter:
export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
à mon.zshenv
fichier dot depuis que j'utilisezsh
. l'git config
option a fonctionné dans la plupart des cas, mais lorsquervm get stable
je clique sur github via SSL ( par exemple), je rencontre toujours des problèmes de certificat. @Maverick l'a souligné dans son commentaire, mais juste au cas où quelqu'un le manquerait ou supposerait qu'il n'a pas nécessairement besoin d'exporter cette variable d'environnement en plus d'exécuter legit config --system....
commande. Merci et j'espère que cela vous aidera.MISE À JOUR
Il semble que le paquet curl-ca ait été récemment supprimé de l'homebrew . Il y a une recommandation ici .
Vous voudrez déposer certains fichiers dans:
$(brew --prefix)/etc/openssl/certs
la source
export CURL_CA_BUNDLE=/usr/local/share/ca-bundle.crt
Vous pouvez essayer cette commande dans le terminal :
la source
J'ai résolu ce problème en utilisant apt-cyg (un excellent programme d'installation similaire à apt-get) pour télécharger facilement les certificats ca (y compris Git et bien d'autres):
Remarque : apt-cyg doit d'abord être installé. Vous pouvez le faire à partir de la ligne de commande Windows:
Fermez Windows cmd et ouvrez Cygwin Bash:
la source
sur un rasbery pi j'avais
pi @ raspbmc: ~ $ git clone http: //github.com/andreafabrizi/Dropbox-Uploader .git Clonage dans 'Dropbox-Uploader' ... erreur: problème avec le certificat SSL CA (chemin? droits d'accès?) lors de l'accès http: // github.com/andreafabrizi/Dropbox-Uploader.git/info/refs fatal: la requête HTTP a échoué
donc id un
puis
travaillé
la source
Si vous avez utilisé un système d'exploitation basé sur Debian, vous pouvez simplement exécuter
la source
J'ai eu ce même problème pour Solaris Express 11. Cela m'a pris du temps mais j'ai réussi à trouver où les certificats devaient être placés. Selon /etc/openssl/openssl.cnf, le chemin des certificats est / etc / openssl / certs. J'ai placé les certificats générés en utilisant les conseils ci-dessus d'Alexey.
Vous pouvez vérifier que les choses fonctionnent en utilisant openssl sur la ligne de commande:
la source
Essayez d'utiliser un fichier .netrc, il s'authentifiera via https. Créez un appel de fichier
.netrc
dans votre répertoire personnel et mettez-le dedans:Voir cet article pour plus d'informations:
https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj
la source
Améliorez la solution de RouMao en désactivant temporairement la vérification GIT / curl ssl dans Windows cmd:
La bonne chose à propos de cette solution est qu'elle ne prend effet que dans la fenêtre cmd actuelle.
la source
Avez-vous vérifié votre temps?
J'ai absolument refusé de rendre mes opérations git peu sûres et après avoir essayé tout ce que les gens ont mentionné ici, il m'a frappé qu'une des raisons possibles pour lesquelles les certificats ne réussissent pas la vérification est que les dates sont incorrectes (soit la date d'expiration du certificat, soit la date locale). horloge ).
Vous pouvez le vérifier facilement en tapant
date
un terminal. Dans mon cas (un nouveau Raspberry Pi), l'horloge locale a été réglée sur 1970, donc un simple antpdate -u 0.ubuntu.pool.ntp.org
tout réglé. Pour un rPi, je recommanderais également de mettre le script suivant dans un travail cron quotidien (disons/etc/cron.daily/ntpdate
):la source
Générez le jeton d'accès à partir de Github et enregistrez-le, car il n'apparaîtra plus.
ou,
la source
J'ai rencontré le même problème pour configurer Git sur une plateforme de développement collaboratif que je dois gérer.
Pour le résoudre:
J'ai mis à jour la version de Curl installée sur le serveur. Téléchargez la dernière version sur le site Web Téléchargez la page de curl et suivez les procédures d'installation Procédure d' installation de curl
Récupérez le certificat de l'autorité qui délivre le certificat pour le serveur.
Ajoutez ce certificat au fichier CAcert utilisé par curl. Sur mon serveur, il est situé dans
/etc/pki/tls/certs/ca-bundle.crt
.Configurez git pour utiliser ce fichier de certificat en modifiant le fichier .gitconfig et définissez le chemin sslcainfo.
sslcainfo= /etc/pki/tls/certs/ca-bundle.crt
Sur la machine cliente, vous devez obtenir le certificat et configurer également le fichier .gitconfig.
J'espère que cela aidera certains d'entre vous.
la source
J'ai tout essayé, finalement j'ai regardé dans le fichier hosts et il y avait une entrée aléatoire pour github. La suppression de l'alias a résolu le problème
% systemroot% \ system32 \ drivers \ etc \ hosts
la source
J'ai simplement désactivé l'authentification par certificat SSL et utilisé la simple connexion par mot de passe du nom d'utilisateur comme indiqué ci-dessous
la source
J'avais besoin de certificats uniquement pour Cygwin et git, j'ai donc fait ce que @esquifit a publié. Cependant, j'ai dû exécuter l'étape 5 manuellement, c_rehash n'était pas disponible sur mon système. J'ai suivi ce guide: Installer des certificats CA dans le framework OpenSSL à la place.
la source
J'avais besoin de deux choses:
allez dans la configuration de cygwin et incluez le paquet ' ca-certificats ' (il est sous Net) (comme indiqué ailleurs).
Dites à git où trouver les certificats installés:
GIT_SSL_CAINFO = / usr / ssl / certs / ca-bundle.crt GIT_CURL_VERBOSE = 1 git ...
(L'option détaillée n'est pas nécessaire)
Ou en stockant l'option en permanence:
git config --global http.sslCAinfo /usr/ssl/certs/ca-bundle.crt
git ...
la source
J'ai eu le même problème. L'importation de certificat ou la commande pour annuler la vérification SSL n'a pas fonctionné. Il s'avère que le mot de passe est expiré pour le proxy réseau. Il y avait entrée de la configuration du proxy. dans le fichier .gitconfig présent dans mon profil utilisateur Windows. Je viens de supprimer l'entrée entière et elle a recommencé à fonctionner.
la source
Sur un système Mac OSX 10.5, j'ai pu faire fonctionner cela avec une méthode simple. Tout d'abord, exécutez les procédures github et le test, qui ont bien fonctionné pour moi, montrant que mon certificat était en fait correct. https://help.github.com/articles/generating-ssh-keys
Puis j'ai finalement remarqué un autre format d'URL pour les télécommandes. J'ai essayé les autres, ci-dessus et ils n'ont pas fonctionné. http://git-scm.com/book/ch2-5.html
Un simple "git push myRemoteName" a très bien fonctionné!
la source
J'ai récemment (juillet 2014) rencontré un problème similaire et découvert sur OS X (10.9.4) qu'un certificat "DigiCert High Assurance EV Root CA" avait expiré (même si j'en avais un autre non expiré également).
J'ai trouvé deux certificats nommés "DigiCert High Assurance EV Root CA", l'un expirant en novembre 2031 et celui expiré en juillet 2014 (quelques jours auparavant). La suppression du certificat expiré a résolu le problème pour moi.
J'espère que cela t'aides.
la source
Pour ceux qui utilisent Msys / MinGW GIT, ajoutez ceci
la source