.当 Ubuntu 14.04 LTS curl 不支持 CA 证书时该怎么办,即使它是有效的

.当 Ubuntu 14.04 LTS curl 不支持 CA 证书时该怎么办,即使它是有效的

在 Ubuntu 14.04 上,我尝试这样做curl https://api.the-newshub.com/api/1/topics/trending/top。它不起作用,但当您使用 Firefox 访问时它确实有效。

我已更新证书:sudo apt-get install --reinstall ca-certificatesupdate-ca-certificates -f。仍然没有结果。

Ubuntu 的原生 CA 证书多久更新一次?新证书多久出现一次?

如果您确实需要访问这样的 URL,该如何解决?但您无法控制域名?但 SSL 验证是强制性的。

答案1

卷发对我来说很有效,但这里有两件事你可以做(​​取自man curl):

  1. 在 Firefox 中,选择选项, 然后先进的,然后加密标签,查看证书。这将打开证书管理器,您可以在其中出口. 请务必选择PEM“保存类型”。

    假设您将证书放入~/cert.pem,然后您将使用:

    curl -E ~/cert.pem https://api.the-newshub.com/api/1/topics/trending/top
    
  2. 许多较旧的 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,因此第二个想法可能没用。

  3. 来源,大约 10.04) 我一直遇到同样的麻烦,经过一番寻找后发现,可以直接从 curl dev 站点下载适用于 ubuntu 上的 curl 的 CA 证书包。

    cd /etc/ssl/certs
    sudo wget http://curl.haxx.se/ca/cacert.pem
    

    现在 curl 使用最新的捆绑包,您就可以开始了。

相关内容