2

在我的 PHP 代码中,我尝试从以开头的 URL 下载文件https://

$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curlHandle);
curl_close($curlHandle);

$responseFALSE除非我这样做:

curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);

打电话之前curl_exec()

我下载的 URL 来自 Window Azure Blob Storage 并以开头,https://myaccount.blob.core.windows.net因此我认为服务器 SSL 证书应该没有问题。

这种行为的原因是什么?

4

2 回答 2

4

发生这种情况是因为您没有使用被认为值得信赖的 CA 证书配置 curl,因此它无法验证远程服务器证书上的签名(尽管签名很可能是有效的)。

要验证签名,您应该设置CURLOPT_CAINFOCURLOPT_CAPATH适当地设置。

于 2012-06-21T10:12:15.890 回答
0

仅供参考,Microsoft 发布了一个用于 PHP 的 SDK,它将为您处理所有这些事情,并让您的代码更多地与 azure 服务交互,而不是使用 HTTP。

于 2012-06-28T04:47:29.303 回答