2016-02-10 13 views
4

Im пытается конвертировать curl-инструкцию с заголовком аутентификации в запрос php curl. Но не кажется, что это будет работать, потому что я получаю ошибку ниже с echo 'error:' . curl_error($ch);:Преобразование curl-команды в php curl

error:SSL certificate problem: unable to get local issuer certificate 

Мой завиток-команда выглядит следующим образом:

curl --user XXXX:YYYY "URL" 

Мой PHP-локон выглядит следующим образом:

$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); 

Кто-нибудь видит мою вину?

ответ

3

cURL не может проверить подлинность используемого сертификата, поскольку сертификат для органа подписи не может быть найден в локальной базе данных.

Это может быть симптомом использования самоподписанного сертификата.

Что вы, , должны сделать, это добавить сертификат для органа, подписавшего договор, на /etc/ssl/certs/ca-certificates.crt.

Что вы можете сделать, это использовать curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);, что отключит проверку, которая не работает.

Вы действительно должны использовать первый вариант.