【问题标题】:Convert curl-command to php curl将 curl 命令转换为 php curl
【发布时间】:2016-02-10 12:01:04
【问题描述】:

我正在尝试将带有身份验证标头的 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);

有人看出我的错吗?

【问题讨论】:

    标签: php url curl php-curl


    【解决方案1】:

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

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

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

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

    您确实应该使用第一个选项。

    【讨论】:

      猜你喜欢
      • 2019-06-04
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多