在curl*上设置Cainfo选项*当前我包括cacert.pem文件从https://curl.haxx.se/ca/ca/cacert.pem下载。p>是否有一种方法可以在项目中包含该文件,以便在二进制中包含该文件,并且无需明确指定Cainfo选项?我相信有某种方式,因为相同的呼叫没有设置Cainfo在我使用系统卷曲库的OSX上工作。
它取决于!
libcurl本身可以使用大量不同的TLS库来构建,并且它们都有自己的微小差异。魔鬼确实像往常一样在细节中。
Mac
MacOS上的"本机" libcurl用于使用内部"安全传输" TLS库,默认情况下,它使用了Apple Ships的内部" Trust Store"。因此,大多数应用程序都不需要提供任何CA证书。
但是,许多人也选择在Mac上使用自己的自定义构建,然后它可能会使用Nother TLS库(主要是因为本机Mac One在功能上相当限制)。
Windows
同样,构建用于使用Schannel的Windows上的Libcurl(本机Windows TLS解决方案)可以使用Windows Internal Trust Store。
windows上的一个libcurl是为了使用openssl而构建的 - 但是,这是最受欢迎的TLS库选择 - 需要单独使用并提供的信任存储以使用,因为它不会使用默认的商店。然后,您可以将该信任存储作为一个单独的文件,以传递给libcurl 或您使用Curl网站的CacerTinmem示例中显示的Curlopt_ssl_ctx_function回调将其设置为。