the*_*ods 16 ssl certificates curl
我正在使用 Ubuntu 14.04。当我使用 curl 时,出现以下错误:
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:
从我从谷歌搜索中收集的信息来看,它正在寻找的 CAfile 位置对于 Ubuntu 不正确(并且它在我的计算机上不存在),/etc/ssl/certs/ca-certificates.crt
是正确的位置。
大多数解决方案涉及将环境变量设置CURL_CA_BUNDLE
到正确的位置,或添加cacert=/etc/ssl/certs/ca-certificates.crt
到.curlrc
我的主目录中的(新创建的)文件中。我两个都试过了,都没有完全解决问题。curl 正在找到这个位置,但它仍然不起作用,给出了错误:
curl: (60) SSL certificate problem: self signed certificate in certificate chain
我还尝试在 Ubuntu 中卸载并重新安装 curl,并更新我的 CA 证书以$ sudo update-ca-certificates --fresh
更新证书,但仍然没有使错误 60 消失。
我对 CA 证书不太了解,怀疑我过去故意添加了一些自签名证书。也许是偶然,我不知道。
有谁知道如何解决这一问题?有没有办法让我的所有证书真正重新开始?或者有谁知道我如何弄清楚这个自签名证书在哪里,然后如何删除它?
PS:我不想使用 -k(又名 --insecure)标志。我想让它安全地工作。
the*_*ods 12
在过去几天对此进行研究和研究后,我让它开始工作,答案最终变得相当简单。
我需要capath=/etc/ssl/certs/
在我的.curlrc
文件中设置。
这让 curl 在命令行上工作。为了进一步让 curl 在 R 中工作(我第一次遇到问题的地方),我还需要像以前一样cacert=/etc/ssl/certs/ca-certificates.crt
在我的.curlrc
文件中使用,否则它会继续寻找/etc/pki/tls/certs/ca-bundle.crt
我仍然不知道为什么我会看到有关自签名证书的错误。
根据其他一些随机发现,我还从 Curl 网站下载了一个证书,其中包含:
sudo wget http://curl.haxx.se/ca/cacert.pem
Run Code Online (Sandbox Code Playgroud)
进入同一个certs
目录。有cafile
针对性的在此工作过。最后我把它放回去ca-certificates.crt
,它仍然有效。
我不明白为什么这有效或发生了什么,但它已解决。
小智 10
cafile密钥对我不起作用(curl 7.45.0)但 cacert(来自 --cacert 选项)可以。我的.curlrc文件:
capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46750 次 |
最近记录: |