Как отправить POST запрос, используя HTTP context через cURL?

Необходимо пройти авторизацию на httsp с использованием сертификатов, так как https соединение на хостинге разрешается использовать только через cURL, то встает вопрос - как подключить сертификат ?

Вод код как я делаю через cURL, не уверен что сертификат подключается:
$url = "https://api.direct.yandex.ru/json-api/v4/";
$request = $request = json_encode($data);
$opts = array(
    'http'=>array(
        'method'=>"POST",
        'content'=>$request,
    )
); 
 
$context = stream_context_create($opts);
stream_context_set_option($context, 'ssl', 'local_cert', '1/solid-cert.crt');

$ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
        $data = curl_exec($ch);
        curl_close($ch);


Рабочий пример с использованием file_get_contents:

$request = $request = json_encode($data);
$opts = array(
    'http'=>array(
        'method'=>"POST",
        'content'=>$request,
    )
); 
 
$context = stream_context_create($opts);
stream_context_set_option($context, 'ssl', 'local_cert', '1/solid-cert.crt');
$result = file_get_contents('https://api.direct.yandex.ru/json-api/v4/', 0, $context);
  • Вопрос задан
  • 4805 просмотров
Решения вопроса 1
go3l337
@go3l337 Автор вопроса
Решено:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSLCERT, '1/solid-cert.crt');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Насколько я знаю, в cURL'е есть специальные параметры для настройки SSL.
www.php.net/curl_setopt
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы