得到错误的卷曲 - 同等证书不能与已知的CA证书认证(Getting error in Curl -

2019-07-19 05:39发布

我得到下面的错误,同时与自签名证书的SSL连接。 “同等证书不能与已知的CA证书进行身份验证”

这是工作的罚款与CA签名的证书。 我设置了以下使用curl_easy_setopt()。

curl_easy_setopt(MyContext,CURLOPT_CAPATH,CA_CERTIFICATE_PATH)curl_easy_setopt(MyContext,CURLOPT_SSL_VERIFYPEER,TRUE);

卷曲版本
libcurl中,7.19.7-26

OpenSSL的版本是0_9_8u。

请让我知道如何解决这个问题。

Answer 1:

为PHP关掉证书例如卷曲的验证curl_exec

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

http://php.net/manual/en/function.curl-setopt.php

(评价自己的安全风险,在我的情况,这是一个合作伙伴公司的服务器上,并且所需的文件不包含任何安全信息 - 正好是一个安全的服务器上)



Answer 2:

默认情况下,卷曲一般会验证SSL证书,看其是否有效,并通过一个公认的CA颁发 要做到这一点,卷曲采用了束集合CA证书。

如果您想关闭该证书的卷曲的验证,使用-k(或--insecure)选项。 下面是一个例子:

curl --noproxy -k \* -D - https://127.0.0.1:443/some-secure-endpoint


Answer 3:

我们通过更新卷曲标准库提供的最新版本,然后安装最新的CA证书捆绑固定在CentOS 6类似的问题:

yum update curl
yum install ca-certificates


Answer 4:

libcurl的默认执行对SSL证书验证。 这是通过使用SSL库可以使用,以确保对等的服务器证书是有效的CA证书捆绑进行。

如果您使用HTTPS或者FTPS使用由存在于捆绑的CA签名的证书服务器进行通信,可以肯定的是,远程服务器确实是它自称是一个。

直到7.18.0,卷曲捆绑这是默认安装的一个严重过时的CA包文件。 这些天来,卷曲档案不包含CA证书的。 你需要让他们在其他地方。 请参见下面的例子。

欲了解更多了解同行SSL证书验证登陆http://curl.haxx.se/docs/sslcerts.html



Answer 5:

虽然在使用的情况下发生这种错误git clone使用,而不是curl ,我最近偶然发现了一个相同的错误信息:

同等证书不能与已知的CA证书进行身份验证

类似的阿瑟的调查结果 ,这东西(为了成功地使用HTTPS URL以工作为CentOS 6 git clone相关GitLab库)所涉及的服务器上更新可信证书(即,使用HTTPS服务器上),使用下面的步骤 :

  1. sudo yum install ca-certificates
  2. sudo update-ca-trust enable
  3. sudo cp /path/to/your_new_cert.crt /etc/pki/ca-trust/source/anchors/
  4. sudo update-ca-trust extract

也许相同的证书的步骤可应用于的情况下curl (或其他类似的情形),用于在未来CentOS用户。



Answer 6:

在“C”

curl_easy_setopt(curl_handle,CURLOPT_SSL_VERIFYPEER,0);

工作对我来说



文章来源: Getting error in Curl - Peer certificate cannot be authenticated with known CA certificates
标签: ssl curl openssl