我被困在防火墙后面,所以必须使用HTTPS访问我的GitHub存储库。我在Windows XP上使用cygwin 1.7.7。

我试过把遥控器设置为https://username@github.com/username/ExcelANT.git,但按下输入密码的提示,但输入后没有任何反应。 https://username:<密码>github.com/username/ExcelANT.git和克隆空回购从零开始,但每次它给我同样的错误

错误:SSL证书有问题,请检查CA证书是否正确。细节: SSL例程:SSL3_GET_SERVER_CERTIFICATE:访问https://github.com/username/ExcelANT.git/info/refs时证书验证失败

打开GIT_CURL_VERBOSE=1会给我

* About to connect() to github.com port 443 (#0) * Trying 207.97.227.239... * successfully set certificate verify locations: * CAfile: none CApath: /usr/ssl/certs * SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed * Expire cleared * Closing connection #0 * About to connect() to github.com port 443 (#0) * Trying 207.97.227.239... * successfully set certificate verify locations: * CAfile: none CApath: /usr/ssl/certs * SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed * Expire cleared * Closing connection #0 error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/username/ExcelANT.git/info/refs

fatal: HTTP request failed

这是我的防火墙有问题吗,cygwin还是什么?

我没有在Git配置中设置HTTP代理,但是它是一个ISA服务器,需要NTLM身份验证,不是基本的,所以除非有人知道如何强制Git使用NTLM,否则我就完了。


当前回答

我也有同样的问题。 证书导入或取消ssl验证的命令不起作用。 原来是过期的网络代理密码。 代理配置条目。在我的Windows用户配置文件中的.gitconfig文件中。 我只是删除了整个条目,它又开始工作了。

其他回答

在Mac OSX 10.5系统上,我可以用一个简单的方法让它工作。首先,运行github程序和测试,这对我来说工作正常,显示我的证书实际上是好的。 https://help.github.com/articles/generating-ssh-keys

ssh -T git@github.com

然后我终于注意到遥控器的另一种url格式。我尝试了上面的其他方法,但都没有效果。 http://git-scm.com/book/ch2-5.html

git@github.com:MyGithubUsername/MyRepoName.git

一个简单的“git push myRemoteName”工作得很好!

你看时间了吗?

我绝对拒绝让我的git操作变得不安全,在尝试了人们在这里提到的所有东西之后,我突然发现,证书无法通过验证的一个可能原因是日期错误(要么是证书过期日期,要么是本地时钟)。

您可以通过在终端中输入日期轻松地进行检查。在我的情况下(一台新的树莓派),本地时钟被设置为1970年,所以一个简单的ntpdate -u 0.ubuntu.pool.ntp.org修复了所有问题。对于rPi,我也建议你将以下脚本放在日常cron作业中(例如/etc/cron.daily/ntpdate):

#!/bin/sh
/usr/sbin/ntpdate -u 0.ubuntu.pool.ntp.org 1> /dev/null 2>&1

我只需要Cygwin和git的证书,所以我做了@esquifit张贴的东西。然而,我不得不手动运行第5步,c_rehash在我的系统上不可用。我遵循了以下指南:将CA证书安装到OpenSSL框架中。

尝试使用.netrc文件,它将通过https进行身份验证。在你的主目录中创建一个名为.netrc的文件,并把它放在里面:

machine github.com login myusername password mypass

更多信息请看这篇文章:

https://plus.google.com/u/0/104462765626035447305/posts/WbwD4zcm2fj

尝试使用命令

git config --global http.sslverify false

该命令将允许来自http的所有不安全的证书,如果在专业环境中使用,请谨慎使用。