2012-02-13 44 views
3

尝试使用以下命令访问github失败,验证失败错误。我应该怎么做让过去这个问题无法通过卷曲访问github

C:\software\curl-7.23.1-win64-ssl-sspi>curl -i https://api.github.com 

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: 
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 
More details here: http://curl.haxx.se/docs/sslcerts.html 

curl performs SSL certificate verification by default, using a "bundle" 
of Certificate Authority (CA) public keys (CA certs). If the default 
bundle file isn't adequate, you can specify an alternate file 
using the --cacert option. 
If this HTTPS server uses a certificate signed by a CA represented in 
the bundle, the certificate verification probably failed due to a 
problem with the certificate (it might be expired, or the name might 
not match the domain name in the URL). 
If you'd like to turn off curl's verification of the certificate, use the -k (or -- insecure) option. 

回答

2

随着msysgit,我有时不得不再次指定为http.sslcainfo到msysgit正确地拿起正确的CA证书文件。

git config --system http.sslcainfo \bin/curl-ca-bundle.crt 

(也presented here并在comments of the GitHub smart http page
如果这不起作用:

  • 尝试指定的完整路径:git config --system http.sslcainfo /c/path/to/msysgit/bin/curl-ca-bundle.crt,本blog post所示:

更简单的修复方法就是将http.sslcainfo设置为的绝对路径文件在你的msysGit安装的bin文件夹:

$ git config --global http.sslcainfo "/c/Program Files (x86)/Git/bin/curl-ca-bundle.crt" 

我选择在--global水平要做到这一点,因此设定不会被未来的msysGit安装覆盖。

2

如果你不想使用--cacert选项(为什么?),在文本建议,使用约-k另一个建议详细

>curl -i -k https://api.github.com 
HTTP/1.1 302 Found 
Server: nginx/1.0.4 
Date: Mon, 13 Feb 2012 09:14:24 GMT 
Content-Type: text/html;charset=utf-8 
Connection: keep-alive 
Status: 302 Found 
X-RateLimit-Limit: 5000 
ETag: "d41d8cd98f00b204e9800998ecf8427e" 
Location: http://developer.github.com 
X-RateLimit-Remaining: 4999 
Content-Length: 0 
+0

**请注意:**此选项禁用SSL证书验证。 --cacert是首选的方式。 – 2012-09-18 12:31:33

+0

使用cURL进行GitHUb访问,使SSL有点多余。使用'-Lk'标志也可以遵循任何重定向。 – not2qubit 2014-01-28 18:20:49