在 Ubuntu 14.04 上,我尝试这样做curl https://api.the-newshub.com/api/1/topics/trending/top
。它不起作用,但当您使用 Firefox 访问时它确实有效。
我已更新证书:sudo apt-get install --reinstall ca-certificates
和update-ca-certificates -f
。仍然没有结果。
Ubuntu 的原生 CA 证书多久更新一次?新证书多久出现一次?
如果您确实需要访问这样的 URL,该如何解决?但您无法控制域名?但 SSL 验证是强制性的。
答案1
卷发对我来说很有效,但这里有两件事你可以做(取自man curl
):
在 Firefox 中,选择选项, 然后先进的,然后加密标签,查看证书。这将打开证书管理器,您可以在其中出口. 请务必选择
PEM
“保存类型”。假设您将证书放入
~/cert.pem
,然后您将使用:curl -E ~/cert.pem https://api.the-newshub.com/api/1/topics/trending/top
许多较旧的 SSL 服务器在使用 SSLv3 或 TLS 时存在问题,而较新版本的 OpenSSL 等则使用这些版本,因此有时指定 curl 应使用的 SSL 版本很有用。使用 -3、-2 或 -1 指定要使用的确切 SSL 版本(分别针对 SSLv3、SSLv2 或 TLSv1):
curl -2 https://api.the-newshub.com/api/1/topics/trending/top
否则,curl 将首先尝试使用 v3,然后使用 v2。
注意:根据您的网站证书,它似乎使用 SSLv3,因此第二个想法可能没用。
(来源,大约 10.04) 我一直遇到同样的麻烦,经过一番寻找后发现,可以直接从 curl dev 站点下载适用于 ubuntu 上的 curl 的 CA 证书包。
cd /etc/ssl/certs sudo wget http://curl.haxx.se/ca/cacert.pem
现在 curl 使用最新的捆绑包,您就可以开始了。