我被困在防火墙后面,所以必须使用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,否则我就完了。
如果你只想在github.com上使用Cygwin git客户端,有一种更简单的方法,而不必经历下载、提取、转换和分割证书文件的麻烦。按以下步骤进行(我假设Windows XP与Cygwin和Firefox)
In Firefox, go to the github page (any)
click on the github icon on the address bar to display the certificate
Click through "more information" -> "display certificate" --> "details" and select each node in the hierarchy beginning with the uppermost one; for each of them click on "Export" and select the PEM format:
GTECyberTrustGlobalRoot.pem
DigiCertHighAssuranceEVRootCA.pem
DigiCertHighAssuranceEVCA-1.pem
github.com.pem
Save the above files somewhere in your local drive, change the extension to .pem and move them to /usr/ssl/certs in your Cygwin installation (Windows: c:\cygwin\ssl\certs )
(optional) Run c_reshash from the bash.
就是这样。
当然,这只安装一个证书层次结构,你需要的github。当然,您可以将此方法用于任何其他站点,而不需要安装200个您(不一定)信任的站点。
如果你只想在github.com上使用Cygwin git客户端,有一种更简单的方法,而不必经历下载、提取、转换和分割证书文件的麻烦。按以下步骤进行(我假设Windows XP与Cygwin和Firefox)
In Firefox, go to the github page (any)
click on the github icon on the address bar to display the certificate
Click through "more information" -> "display certificate" --> "details" and select each node in the hierarchy beginning with the uppermost one; for each of them click on "Export" and select the PEM format:
GTECyberTrustGlobalRoot.pem
DigiCertHighAssuranceEVRootCA.pem
DigiCertHighAssuranceEVCA-1.pem
github.com.pem
Save the above files somewhere in your local drive, change the extension to .pem and move them to /usr/ssl/certs in your Cygwin installation (Windows: c:\cygwin\ssl\certs )
(optional) Run c_reshash from the bash.
就是这样。
当然,这只安装一个证书层次结构,你需要的github。当然,您可以将此方法用于任何其他站点,而不需要安装200个您(不一定)信任的站点。
我希望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。