我在使用自签名证书进行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.
请让我知道如何解决这个问题.
默认情况下,CURL通常会验证SSL证书以查看其是否有效并由接受的CA颁发.为此,curl使用一组捆绑的CA证书.
如果您要关闭curl对证书的验证,请使用-k(或--insecure)选项.这是一个例子:
curl --noproxy -k \* -D - https://127.0.0.1:443/some-secure-endpoint
Run Code Online (Sandbox Code Playgroud)
for php关闭curl验证证书,例如curl_exec
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.curl-setopt.php
(自己评估安全风险,在我的情况下,它是在合作伙伴公司的服务器上,并且所需的文件不包含安全信息 - 恰好在安全的服务器上)
我们通过将 curl 更新到标准存储库中可用的最新版本并安装最新的 ca-certificates 包,修复了 CentOS 6 上的类似问题:
yum update curl
yum install ca-certificates
Run Code Online (Sandbox Code Playgroud)
小智 4
libcurl 默认执行对等 SSL 证书验证。这是通过使用 CA 证书包来完成的,SSL 库可以使用该证书包来确保对等方的服务器证书有效。
如果您使用捆绑包中存在的 CA 签名的证书与 HTTPS 或 FTPS 服务器进行通信,则可以确保远程服务器确实是它所声称的服务器。
在 7.18.0 之前,curl 捆绑了默认安装的严重过时的 ca 捆绑文件。如今,curl 档案根本不包含 ca 证书。您需要从其他地方获取它们。参见下面的例子。
有关对等 SSL 证书验证的更多信息,请访问http://curl.haxx.se/docs/sslcerts.html
| 归档时间: |
|
| 查看次数: |
68948 次 |
| 最近记录: |