iOS cURL:无法获取本地颁发者证书

iOS cURL:无法获取本地颁发者证书,ios,ssl,curl,certificate,Ios,Ssl,Curl,Certificate,我正在尝试使用iOS上的curl设置到HTTPS服务器的安全连接(应用程序是用C++编写的) 我发现我需要为CURLOPT_CAPATH选项设置cacert.pam()文件路径: curl_easy_setopt (curl, CURLOPT_CAPATH, "/var/mobile/Applications/811DEF2E-DE1D-4C86-A1FD-129478C8318D/MyApp.app/ca/cacert.pem"); curl_easy_setopt (curl, CURLOP

我正在尝试使用iOS上的curl设置到HTTPS服务器的安全连接(应用程序是用C++编写的)

我发现我需要为CURLOPT_CAPATH选项设置cacert.pam()文件路径:

curl_easy_setopt (curl, CURLOPT_CAPATH, "/var/mobile/Applications/811DEF2E-DE1D-4C86-A1FD-129478C8318D/MyApp.app/ca/cacert.pem");
curl_easy_setopt (curl, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt (curl, CURLOPT_SSL_VERIFYHOST, 2L);
但这只会生成以下详细日志(ip和url已更改):

如果我将CURLOPT_CAPATH设置为“./MyApp.app/ca”文件夹,也会发生同样的情况。文件存在并且可以读取

似乎缺少有关此错误的信息。。
我做错了什么?

好的,经过一些恼人的搜索,我找到了问题和解决方案

这似乎不适用于文件夹或文件路径:

curl_easy_setopt (curl, CURLOPT_CAPATH, caCertPath);
但是,当提供PEM文件的完整路径时,此选项有效:

curl_easy_setopt (curl, CURLOPT_CAINFO, caCertPath);

希望这对将来的人有所帮助

好的,经过一些恼人的搜索,我找到了问题和解决方案

这似乎不适用于文件夹或文件路径:

curl_easy_setopt (curl, CURLOPT_CAPATH, caCertPath);
但是,当提供PEM文件的完整路径时,此选项有效:

curl_easy_setopt (curl, CURLOPT_CAINFO, caCertPath);
希望这对将来的人有所帮助

来自手册:

CURLOPT_CAPATH函数显然无法在Windows中工作,原因是 openssl中的一些限制

CURLOPT_CAINFO选项在手动模式下工作

CURLOPT_CAPATH函数显然无法在Windows中工作,原因是 openssl中的一些限制


CURLOPT_CAINFO选项有效

您对iphone代码或服务器端脚本有问题吗?请参阅如何配置本地服务器以处理windows和Mac的HTTPS post这与服务器端有什么关系?服务器端安全工作正常,这是客户端(iOS)代码最后是一线希望参考您对iphone代码或服务器端脚本有问题吗?参考如何配置您的本地服务器以处理windows和Mac的HTTPS post这与服务器端有什么关系?服务器端安全工作正常,这是客户端(iOS)代码最后一些希望之光参考