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

lib curl在升级curl版本后返回错误:51,curl,openssl,libcurl,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 在我的代码中

我使用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升级到了curl 7.21.0,它的工作方式与以前一样, 但升级到7.37后,我发现了以下错误:

“证书使用者名称'xxxxxxxxx'与目标主机名称'localhost'不匹配”


curl返回错误51

服务器证书的主机名与您要连接的主机名不同(错误消息清楚地说明了这一点)

如果CURLOPT_SSL_VERIFYHOST设置为2,如果它在由于错误之前工作,那么它不应该工作-但是我怀疑证书或主机名已经更改


您可以通过多种方式解决此问题,包括将CURLOPT_SSL_VERIFYHOST设置为0或使用CURLOPT_RESOLVE将“真实”主机名设置为127.0.0.1。

涉及的未知因素太多,无法简短回答我添加了更多信息,有关SSL和证书的策略是否在版本7.20.0到7.37.0之间更改?该策略是否比以前更严格?
CURLOPT_SSL_VERIFYHOST to 0
是个坏主意,应该从库中删除。没有理由那样破坏安全。当X.509和PKIX的基本要求不满足时,要求站点修复其证书,或让库返回有意义的错误代码。