Задать вопрос
@alexdora
Топ-менеджер

PHP и Curl перестал правильно отображать SSL?

Смысл простой:
curl_setopt($ch, CURLOPT_URL, $this->apiurl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_HEADER, true); 
//curl_setopt($ch, CURLOPT_CERTINFO, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->header);
curl_setopt($ch, CURLOPT_TIMEOUT, '60');

Вот этот код работал корректно и не менялся. Сейчас, по какой-то причине приходит крякозябра. Протокол соединения SSL 443
Крякозябра именно в ответе, а не в header. С головой все в порядке!

Если взять из командной строки создать запрос:
curl -H "Content-Type: application/json" -X POST -d '{"*":false,"*":"*","cookie":"*"}' https://..

То все приходит без крякозябр. PHP стоит вместе с пакетом Vesta, возможно сертификат поменялся и старый остался в каком-то кэше(как исправить?) или что-то типа этого. Как все это поправить? Не хочется запускать curl через php system на получение данных.

ADD (header in)

HTTP/1.1 200 OK
Cache-Control: max-age=0, s-max-age=0, no-cache, no-store, private
Content-Encoding: gzip
Content-Type: application/json
Date: Sun, 30 Oct 2016 13:04:17 GMT
Expires: Sun, 30 Oct 2016 13:04:17 GMT
Last-Modified: Sun, 30 Oct 2016 13:04:17 GMT
Pragma: no-cache
Strict-Transport-Security: max-age=31536000; preload
Vary: Accept-Encoding
Content-Length: 27
Connection: keep-alive
  • Вопрос задан
  • 353 просмотра
Подписаться 1 Оценить 8 комментариев
Решения вопроса 1
glebovgin
@glebovgin
Full Stack Web Developer
Из очевидного в голову приходит вот что:
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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