libcurl错误:“对等证书无法使用给定的CA证书进行身份验证”

时间:2020-01-09 12:37:36

标签: c++ xcode openssl libcurl macos-high-sierra

我正在尝试通过HTTPS从Mac OS X(High Sierra)连接到FreeBSD服务器。我们正在使用自签名证书。我正在使用命令下载证书

/usr/bin/openssl s_client -tls1_2 -connect 192.168.5.140:443

我用来连接的代码是

curl_easy_setopt(curl, CURLOPT_URL, Serveraddress);

curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 60);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, request);

curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1L);

curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");
curl_easy_setopt(curl,CURLOPT_CAINFO, <CertificatePath>);

相同的代码正在另一台机器(OS X Yosemite)上运行。我唯一能找到的区别是,使用上述命令下载证书时,我收到以下消息:

在运行代码的计算机中:

 No client certificate CA names sent
 Peer signing digest: SHA512
 Server Temp Key: DH, 2048 bits

在代码不起作用的机器上:

No client certificate CA names sent

如何解决此问题?我尝试将Verify-Peer和Verify-Host都指定为0,但这没用。

我尝试了Here中描述的解决方案。它没有用。

感谢帮助。

0 个答案:

没有答案