无法通过curl访问github

时间:2012-02-13 08:52:25

标签: curl 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 个答案:

答案 0 :(得分:2)

使用msysgit,我有时必须再次为msysgit指定http.sslcainfo以正确选择正确的CA证书文件。

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

(还有presented herecomments 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文件夹中curl-ca-bundle.crt文件的绝对路径:

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

我选择在--global级别执行此操作,因此未来的msysGit安装不会覆盖该设置。

答案 1 :(得分: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