Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
libcurl证书验证失败 我使用C++代码中的LIGBURL,但它在证书验证过程中失败了。以下是错误输出:_Curl_Ssl Certificate_Libcurl - Fatal编程技术网

libcurl证书验证失败 我使用C++代码中的LIGBURL,但它在证书验证过程中失败了。以下是错误输出:

libcurl证书验证失败 我使用C++代码中的LIGBURL,但它在证书验证过程中失败了。以下是错误输出:,curl,ssl-certificate,libcurl,Curl,Ssl Certificate,Libcurl,errorbuffer:设置证书验证位置时出错: CAfile:/usr/share/ssl/certs/ca-bundle.crt 卡帕斯:没有 我不明白它为什么要在那个位置查找证书,我还没有指定任何特定的位置。 通过使用以下代码以不安全模式运行它,可以正常运行: curl\u easy\u setoptcurl,CURLOPT\u SSL\u VERIFYPEER,0L 但我想在安全模式下运行它 你知道为什么它在错误的地方寻找证书吗 谢谢。libcurl有一个内置的默认位置,它在那里查找CA

errorbuffer:设置证书验证位置时出错: CAfile:/usr/share/ssl/certs/ca-bundle.crt 卡帕斯:没有

我不明白它为什么要在那个位置查找证书,我还没有指定任何特定的位置。 通过使用以下代码以不安全模式运行它,可以正常运行:

curl\u easy\u setoptcurl,CURLOPT\u SSL\u VERIFYPEER,0L

但我想在安全模式下运行它

你知道为什么它在错误的地方寻找证书吗


谢谢。

libcurl有一个内置的默认位置,它在那里查找CA证书捆绑包。该默认路径是在构建libcurl时设置的。在许多情况下,这将由Linux发行版制造商完成

如果要提供默认的不同CA证书捆绑包,libcurl提供了以下选项:

设置要从中加载CA证书的文件名 使用libcurl版本为OpenSSL设置目录,其中存储单个CA证书
非常感谢你的回答。现在我还有一个问题。当我像下面这样设置证书路径时,验证成功通过:curl\u easy\u setoptcurl、CURLOPT\u CAINFO、/etc/ssl/certs/ca-certificates.crt但我想知道这是根证书的默认位置吗?我的意思是,如果我将硬编码路径添加到我的代码中,我猜在其他机器上它无法工作,因为ca-certificates.crt根证书可能位于其他位置。这就是为什么发行版人员或任何构建libcurl的人都要确保内置设置了正确的默认路径。如果你的应用需要一个特定的集合,你应该考虑把它捆绑到你的应用程序中。如果不进行与curl的configure脚本类似的搜索,您将发现很难知道默认捆绑包的位置。我需要libcurl来查看默认的ssl根证书,但是在我显式设置为在/etc/ssl/certs/ca-certificate.crt位置中查找它之前,它找不到它。因此,libcurl内置的默认路径是不正确的。