如何在使用curl时修复证书错误?

时间:2013-12-12 11:28:29

标签: bash curl cygwin gcutil

当我尝试从dl.google.com下载时,收到此错误:

ERROR: The certificate of `dl.google.com' is not trusted.
ERROR: The certificate of `dl.google.com' hasn't got a known issuer.

这是整个命令输出

$ curl https://dl.google.com/dl/cloudsdk/release/install_google_cloud_sdk.bash
| bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3607  100  3607    0     0   2820      0  0:00:01  0:00:01 --:--:--  3125
bash: line 77: [: Files: binary operator expected
wget -O - https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz > tm
p.4wwaU246zk/google-cloud-sdk.tar.gz
--2013-12-12 11:05:41--  https://dl.google.com/dl/cloudsdk/release/google-cloud-
sdk.tar.gz
Resolving my.proxy.com my.proxy.com)... x.x.x.x
Connecting to my.proxy.com (my.proxy.com)|x.x.x.x|:1234... conne
cted.
ERROR: The certificate of `dl.google.com' is not trusted.
ERROR: The certificate of `dl.google.com' hasn't got a known issuer.

阅读这个问题:How do I fix certificate errors when running wget on an HTTPS URL in Cygwin?一个选项是 “在wget命令行中添加--no-check-certificate选项”,但由于我使用的是curl而不是wget,上面的命令是否有类似的选项?

更新:我试过了

curl -k https://dl.google.com/dl/cloudsdk/release/install_google_cloud_sdk.ba
sh | bash

但同样的错误,代理/防火墙是否会阻止连接?

1 个答案:

答案 0 :(得分:1)

原始答案

您正在搜索-k或(长)--insecure ..手册页是您的朋友;):

  

-k, - 安全               (SSL)此选项明确允许curl执行“不安全”的SSL连接和传输。                 通过使用安装的CA证书捆绑包尝试使所有SSL连接安全                 默认情况下。除非使用-k,使用-insecure,否则这会使所有连接被视为“不安全”失败。                 有关详细信息,请参阅此在线资源:http://curl.haxx.se/docs/sslcerts.html

更新问题后修改:

您表明您已在此处使用-k选项。我深入研究了您的代码和要完成的任务:

您正在尝试从Google服务器下载shell脚本。他们拥有受信任的证书,这意味着您需要删除-k,因为它不安全(如名称)。

下载后,您将脚本直接发送到bash。所以第一个问题是:脚本的下载是否成功? (你可以将脚本发布到一些pastebin,以便能够为我验证这个吗?)在这个问题得到解答后继续解释