【发布时间】:2017-10-08 12:06:22
【问题描述】:
我有一个奇怪的情况,使用 libcurl 的 GET 请求在 Windows 上有效,但在 OSX 上出现证书错误(“ SSL 对等握手失败,服务器很可能需要客户端证书才能连接")
奇怪的是,如果我在终端中使用 curl(仍在 OSX 上)尝试相同的请求,它可以正常工作。
我使用的唯一与 SSL 相关的选项是
curl_easy_setopt(curlHandle, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curlHandle, CURLOPT_SSL_VERIFYHOST, 0);
如何解决这个问题?
Win7 curl version: 7.46
OSX Sierra curl version: 7:54
【问题讨论】:
-
获取 windows 使用的任何证书包,并将其复制到 OSX 并告诉 curl 将其与 CURLOPT_CAINFO 一起使用?尽管您很可能会使用此 1:curl.haxx.se/docs/caextract.html
-
@hanshenrik 和应用程序的用户也必须这样做?这对我来说似乎不合适
-
不,您可以随应用程序一起提供适当的证书包。
-
但是如果是证书问题,为什么使用 curl 可以工作?
-
最佳猜测:您的 Windows 系统安装了 libcurl 读取的默认证书包,而您的 OSX 系统没有