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

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

如何设置证书验证位置?


当前回答

我使用MobaXterm,实习生使用Cygwin,所以即使在安装ca-certificates后使用apt-cyg安装ca-certificates问题也没有解决。

我仍然得到以下错误:

curl:(77)错误设置证书验证位置:CAfile: /etc/ssl/certs/ca-certificates. confcrt CApath: none

然后我试着列出文件/etc/ssl/certs/ca-certificates。crt和我都找不到。但是我可以找到/usr/ssl/certs/ca-bundle.因此,我复制了文件/usr/ssl/certs/ca-bundle. crtCRT为/etc/ssl/certs/ca-certificates。CRT和问题得到了解决。

其他回答

解决这个错误的最快方法是在curl请求中添加-k选项。该选项“允许连接到SSL引用而不需要证书”。(来自curl—help)

请注意,这可能意味着您并没有与您认为您正在与之通信的端点通信,因为它们正在提供一个没有由您信任的CA签名的证书。

例如:

$ curl -o /usr/bin/apt-cyg https://raw.github.com/cfg/apt-cyg/master/apt-cyg

给我以下错误响应:

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

我加了-k

curl -o /usr/bin/apt-cyg https://raw.github.com/cfg/apt-cyg/master/apt-cyg -k

并且没有错误消息。作为奖励,现在我已经安装了apt-cyg。和ca证书。

此错误与缺少一个包有关: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的详细信息

我使用MobaXterm,实习生使用Cygwin,所以即使在安装ca-certificates后使用apt-cyg安装ca-certificates问题也没有解决。

我仍然得到以下错误:

curl:(77)错误设置证书验证位置:CAfile: /etc/ssl/certs/ca-certificates. confcrt CApath: none

然后我试着列出文件/etc/ssl/certs/ca-certificates。crt和我都找不到。但是我可以找到/usr/ssl/certs/ca-bundle.因此,我复制了文件/usr/ssl/certs/ca-bundle. crtCRT为/etc/ssl/certs/ca-certificates。CRT和问题得到了解决。

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

sudo apt install ca-certificates --reinstall

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

把这个放到你的。bashrc中

# fix CURL certificates path
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt

(见罗伯特的评论)