我被困在防火墙后面,所以必须使用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,否则我就完了。


当前回答

我希望Git使用更新后的证书包,而不替换整个系统使用的证书包。下面是如何让Git使用我的主目录中的一个特定文件:

mkdir ~/certs
curl https://curl.haxx.se/ca/cacert.pem -o ~/certs/cacert.pem

现在更新.gitconfig以使用它进行对等验证:

[http]
sslCAinfo = /home/radium/certs/cacert.pem

注意,我使用的是绝对路径。Git在这里不进行路径展开,所以在使用~的时候,会出现一个丑陋的程序集。或者,您可以跳过配置文件,而是通过环境变量git_ssl_caifo设置路径。

要解决此问题,请设置GIT_CURL_VERBOSE=1。Git使用的CA文件的路径将显示在输出中以“CAfile:”开头的行中。

编辑从http更改为https。

其他回答

设置SSL验证为false时在windows上克隆:

    git -c http.sslVerify=false clone http://example.com/e.git

如果你想克隆而不无聊你的全局设置。

我希望Git使用更新后的证书包,而不替换整个系统使用的证书包。下面是如何让Git使用我的主目录中的一个特定文件:

mkdir ~/certs
curl https://curl.haxx.se/ca/cacert.pem -o ~/certs/cacert.pem

现在更新.gitconfig以使用它进行对等验证:

[http]
sslCAinfo = /home/radium/certs/cacert.pem

注意,我使用的是绝对路径。Git在这里不进行路径展开,所以在使用~的时候,会出现一个丑陋的程序集。或者,您可以跳过配置文件,而是通过环境变量git_ssl_caifo设置路径。

要解决此问题,请设置GIT_CURL_VERBOSE=1。Git使用的CA文件的路径将显示在输出中以“CAfile:”开头的行中。

编辑从http更改为https。

我尝试了所有的方法,最终我在主机文件中看到了github的随机入口。删除别名解决了这个问题

etc, etc % systemroot % \ system32 drivers \ \ hosts

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

我在Solaris Express 11上也遇到过同样的问题。我花了一些时间,但我设法找到了需要放置证书的地方。根据“/etc/openssl/openssl.cnf”,证书路径为“/etc/openssl/certs”我放置了使用Alexey的上述建议生成的证书。

你可以在命令行上使用openssl验证事情是否正常工作:

openssl s_client -connect github.com:443