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

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

如何设置证书验证位置?


当前回答

我还安装了最新版本的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:”后面的路径。

其他回答

在git bash中运行以下命令,这对我来说很好

git config --global http.sslverify "false"

这对我很有效

sudo apt-get install ca-certificates

然后进入证书文件夹

sudo cd /etc/ssl/certs

然后复制ca-certificates。CRT文件进入/etc/pki/tls/certs

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

如果没有“tls/certs”文件夹,请创建一个“tls/certs”文件夹,并使用chmod 777 -R folderNAME修改权限

视窗:-

证书从https://curl.se/docs/caextract.html下载 重命名cacert。Pem到curl-ca-bundle.crt 将文件添加到以下任何位置

查看详情https://curl.se/docs/sslcerts.html

curl默认使用“bundle”执行SSL证书验证 的证书颁发机构公钥(CA certs)。默认的 Bundle名为curl-ca-bundle.crt;您可以指定一个备用文件 使用——cacert选项。

如果此HTTPS服务器使用由中表示的CA签名的证书 ,证书验证可能失败,由于 证书的问题(它可能过期了,或者名称可能过期了 不匹配URL中的域名)。

如果您想关闭curl对证书的验证,请使用 -k(或——insecure)选项。

例如

curl --insecure http://........

似乎您的卷曲指向一个不存在的文件与CA证书或类似。

有关CA certs与curl的主要参考,请参见:https://curl.haxx.se/docs/sslcerts.html