将curl命令转换为php curl

4
我正在尝试将带有身份验证头的curl语句转换为php curl请求。但似乎不起作用,因为我收到以下错误:echo 'error:' . curl_error($ch);
error:SSL certificate problem: unable to get local issuer certificate

我的curl命令看起来像这样:

curl --user XXXX:YYYY "URL"

我的php-curl如下所示:
$login = 'XXXX';
$password = 'YYYY';
$url = 'URL';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
echo curl_exec($ch);
$result = curl_exec($ch);

if ($result != false){
        echo "SUCCESS";
}else{
        echo "<br>";
        echo 'error:' . curl_error($ch);
        echo "<br>";
    }
curl_close($ch);  
echo($result);

有人看到我的错误吗?


你可以使用 https://curlconverter.com/php/。 - user3064538
1个回答

3

cURL无法验证使用的证书的真实性,因为本地数据库中找不到签名机构的证书。

这可能是使用自签名证书的症状。

应该将签名机构的证书添加到/etc/ssl/certs/ca-certificates.crt中。

您可以使用curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);来禁用失败的检查。

您真的应该使用第一种选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接