我得到以下错误使用卷曲:

curl: (77) error setting certificate verify locations:
  CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none

如何设置证书验证位置?


当前回答

只要找到适合我的解决方案。

echo’cacert = / etc / ssl / certs / ca-certificates。欧洲委员会

我从这里找到了解

其他回答

如果有人仍然有问题,试试这个,它对我很有效。 删除/etc/ssl/certs/目录下的文件 然后重新安装ca-certificates:

sudo apt install ca-certificates --reinstall

当我尝试安装Linuxbrew时,我这样做了。

我还安装了最新版本的ca-certificates,但仍然出现错误:

curl: (77) error setting certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none

问题是curl希望证书位于/etc/pki/tls/certs/ca-bundle.路径下但是无法找到它,因为它位于/etc/ssl/certs/ca-certificates.crt路径下。

通过运行将我的证书复制到预期的目的地

sudo cp /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt

为我工作。如果目标目的地不存在文件夹,则需要运行命令为其创建文件夹

sudo mkdir -p /etc/pki/tls/certs

如果需要,修改上面的命令,使目标文件名与curl期望的路径匹配,即替换/etc/pki/tls/certs/ca-bundle.在错误消息中使用“CAfile:”后面的路径。

此错误与缺少一个包有关:ca-certificates。安装它。

在Ubuntu Linux(以及类似的发行版)中:

# apt-get install ca-certificates

通过Apt-Cyg在CygWin中

# apt-cyg install ca-certificates

在Arch Linux下(树莓派)

# pacman -S ca-certificates

文档告诉我们:

该包包含CA证书的PEM文件,允许基于SSL的应用程序检查SSL连接的真实性。

在Debian——压缩包ca-certificates的详细信息

无论如何,检查正在运行哪个curl也很重要。

我维护的共享机器上的一个用户得到了这个错误。但原因是他们安装了Anaconda (http://continuum.io)。这样做会把Anaconda的二进制路径放在标准的$ path之前,并且它自带curl二进制文件,它很难找到安装在这台Ubuntu机器上的默认certs。

只需创建文件夹,这在您的系统中是缺失的..

/ etc / pki / tls证书

并使用以下命令创建文件,

Sudo apt-get install ca-certificates

然后复制并粘贴证书到目标文件夹,这是显示在您的错误..我的是“with message”错误设置证书验证位置:CAfile: /etc/pki/tls/certs/ca-bundle.请确保您将文件粘贴到错误中提到的确切位置。使用以下命令复制粘贴..

电脑:sudo cp /etc/ssl/证书/呆滞 / etc / pki / tls证书/ ca-bundle crt。

固定的。