我得到以下错误使用卷曲:
curl: (77) error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none
如何设置证书验证位置?
我得到以下错误使用卷曲:
curl: (77) error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: none
如何设置证书验证位置?
当前回答
对于在XAMPP上运行的PHP代码,我发现我需要编辑PHP .ini以包括以下内容
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = curl-ca-bundle.crt
然后复制到一个文件https://curl.haxx.se/ca/cacert.pem并重命名为curl-ca-bundle。crt并将其放置在\xampp路径下(我无法获得curl。卡帕特工作)。我还发现cURL站点上的CAbundle对于我正在连接的远程站点来说是不够的,所以使用了http://winampplugins.co.uk/curl/上列出的预编译的Windows版本的cURL 7.47.1
其他回答
我使用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和问题得到了解决。
把这个放到你的。bashrc中
# fix CURL certificates path
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
(见罗伯特的评论)
似乎您的卷曲指向一个不存在的文件与CA证书或类似。
有关CA certs与curl的主要参考,请参见:https://curl.haxx.se/docs/sslcerts.html
从$ man curl:
--cert-type <type>
(SSL) Tells curl what certificate type the provided certificate
is in. PEM, DER and ENG are recognized types. If not specified,
PEM is assumed.
If this option is used several times, the last one will be used.
--cacert <CA certificate>
(SSL) Tells curl to use the specified certificate file to verify
the peer. The file may contain multiple CA certificates. The
certificate(s) must be in PEM format. Normally curl is built to
use a default file for this, so this option is typically used to
alter that default file.
此错误与缺少一个包有关: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的详细信息