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

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和问题得到了解决。

其他回答

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

/ 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。

固定的。

我遇到了同样的问题:我正在构建一个基于alpine的docker映像,当我想要卷曲到我的组织的网站时,出现了这个错误。为了解决这个问题,我必须获得我公司的CA证书,然后,我必须把它添加到我的图像的CA证书中。

获取CA证书

使用OpenSSL获取网站相关证书:

openssl s_client -showcerts -servername my.company.website.org -connect my.company.website.org:443

这将输出如下内容:

CONNECTED(00000005)
depth=2 CN = UbisoftRootCA
verify error:num=19:self signed certificate in certificate chain
...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... 
-----END CERTIFICATE-----
...

获取最后一个证书(-----BEGIN certificate -----和 -----END CERTIFICATE----- markups包括),并将其保存到一个文件(mycompanyRootCA。例如CRT)

建立你的形象

然后,当您从alpine构建docker映像时,执行以下操作:

FROM alpine
RUN apk add ca-certificates curl
COPY mycompanyRootCA.crt  /usr/local/share/ca-certificates/mycompanyRootCA.crt
RUN update-ca-certificates

您的映像现在将正常工作!\ o /

@roens是正确的。这将影响所有Anaconda用户,错误如下 Curl:(77)错误设置证书验证位置: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:没有

解决方法是使用默认的系统curl并避免混淆预先设置的Anaconda PATH变量。你可以

重命名Anaconda curl二进制:) Mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda . Mv /path/to/anaconda/bin/curl_anaconda . Mv 或去除蟒蛇卷曲 Conda去除卷曲

$ which curl /usr/bin/curl

[0] Anaconda Ubuntu curl Github issue https://github.com/conda/conda-recipes/issues/352

解决这个错误的最快方法是在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证书。

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

git config --global http.sslverify "false"