如何在Ubuntu 14.04中解决Curl的CA证书问题?


13

我正在使用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,并更新$ sudo update-ca-certificates --fresh 用于更新证书的CA 证书,但仍然没有使错误60消失。

我不太了解CA证书,并且怀疑我过去有意添加了一些自签名证书。也许是偶然,我不知道。

有谁知道如何解决这一问题?有没有一种方法可以使我所有的证书真正重新开始?还是有人甚至不知道我要如何弄清楚这个自签名证书在哪里,然后如何删除它?

PS:我不想使用-k(又名--insecure)标志。我想安全地工作。

Answers:


10

经过过去几天的研究和工作后,我开始使用它,结果答案很简单。

我需要设置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

到同一certs目录。有cafile针对性的在此工作过。最后我把它放回去ca-certificates.crt,它仍然有效。

我不完全了解为什么这行得通或正在发生什么,但是已经解决了。


8

cafile密钥对我不起作用(curl 7.45.0),但cacert(来自--cacert选项)有效。我的.curlrc文件:

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt

1
这在Ubuntu 16.04上对我有用!
JoostDöbken17年

0

我们在Ubuntu 14.04.5中使用我们的C ++程序之一遇到了同样的问题。该.curlrc方法并没有发生作用。

通过将ca-certificates.crt下载到/etc/ssl/certs/ca-certificates.crt并在/ etc / pki / tls / certs /下创建符号链接ca-bundle.crt来解决此问题。目录。

希望这可以帮助!


0

经过几次研究后,我开始使用它了,答案最终还是很简单的。分步做

Step:1 Open terminal ctrl+alt+t
Step:2 cd /etc/ssl/certs/
Step:3 sudo wget http://curl.haxx.se/ca/cacert.pem 

步骤3将在certs文件夹中下载pem文件

  Step 4: Check if .curlrc file is available in your home folder or not. 

.curlrc是一个隐藏文件。在主目录中按ctrl + h检查。如果不存在,则在终端类型上

Step 5:  nano ~/.curlrc 
Step 6: Now paste the below lines in the open file
        capath=/etc/ssl/certs/
        cacert=/etc/ssl/certs/ca-certificates.crt
Step 7: Now save the file and do your things using curl command.

注意: 这里我使用了nano编辑器,但是您可以使用任何编辑器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.