lib curl在升级curl版本后返回错误:51

时间:2014-06-01 16:21:52

标签: curl openssl libcurl

我用openssl 1.0.0编译了curl 7.37.0,并将它们配置如下:

openssl conf:
./Configure COMPILER_TYPE --prefix=/path/to/dir --openssldir=/path/to/dir shared threads
curl conf:
./configure --with-ssl=/path/to/openssl --prefix=/path/to/fdir/ --libdir=/path/to/dir/lib

在我的代码中,我使用'setopt'确定curl将从哪里获取证书:

curl_easy_setopt(crl, CURLOPT_SSL_VERIFYHOST, 2);
curl_easy_setopt(crl, CURLOPT_SSL_VERIFYPEER, true);
curl_easy_setopt(crl, CURLOPT_CAINFO, /path/to/cert/ca.crt);

现在我得到'同行证书错误'(51)。 我在这里错过了openssl / curl配置吗?

[更新]

构建配置似乎很好, 我从7.20.0升级到卷曲7.21.0,它的工作原理与之前一样, 但升级到7.37后,我收到了错误:

“证书主题名称'XXXXXXXXXX'与目标主机名'localhost'不匹配”

和curl返回错误51

1 个答案:

答案 0 :(得分:1)

服务器证书的设置名称与您连接的主机名不同(错误信息非常明确地说明了这一点)。

这不应该与CURLOPT_SSL_VERIFYHOST设置为2一起使用,如果它在由于错误之前有效 - 但我宁愿怀疑证书或主机名已经改变。

您可以使用多种方法,包括将CURLOPT_SSL_VERIFYHOST设置为0或使用CURLOPT_RESOLVE将“实际”主机名设置为127.0.0.1。