如何将多个 ssl 证书添加到 php.ini 中的 curl.cainfo?

How can I add multiple ssl certificates to curl.cainfo in php.ini?

我 运行 在本地使用 Apache 开发多个站点,并希望同时 运行 它们。这些站点通过 ssl 相互通信,因为它是本地设置,所以我使用的是自签名证书。

为了让 php(5.5.26) 接受这些证书,我将它们添加到 php.ini 中的 curl.cainfo 属性。我让它可以使用一个证书,但是当我尝试添加多个 (3) 时,它不起作用(在 php 中从一个站点向另一个站点发出请求时我没有得到任何回复)。我尝试了以下格式:

单独的行:

curl.cainfo=/path/to/certificate.crt
curl.cainfo=/path/to/another/certificate.crt
curl.cainfo=/path/to/last/certificate.crt

同一行,逗号分隔 curl.cainfo=/path/to/certificate.crt,/path/to/another/certificate.crt,/path/to/last/certificate.crt

同一行,冒号分隔 curl.cainfo=/path/to/certificate.crt:/path/to/another/certificate.crt:/path/to/last/certificate.crt

还有其他想法吗?

libcurl 中的基础 CURLOPT_CAINFO 选项仅支持单个文件名,而 PHP/CURL 仅将该字符串传递给 libcurl。所以不,您不能传递多个文件名。但是,您可以将所有这些文件连接成一个文件,然后指向那个文件。