KKOOLL
@KKOOLL
full stack-developer

Сurl выдаёт ошибку, что делать?

Делаю запрос на телеграм api бот
$h = ['Content-Type: application/json'];
    $curl  = curl_init();
    curl_setopt($curl, CURLOPT_HTTPHEADER, $h);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_VERBOSE, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($d));
    curl_setopt($curl, CURLOPT_URL, 'https://api.telegram.org/botТокен/' . $m);
    curl_setopt($curl, CURLOPT_POST, true); 
    $result = curl_exec($curl);

curl_error выдаёт следующее
"SSL certificate problem: self signed certificate in certificate chain"
Скорее всего ошибка в настройке Apache SSL
Пробовал данную статью, не помогло https://qna.habr.com/q/502870
Помогите пожалуйста!
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
"SSL certificate problem: self signed certificate in certificate chain"

Запусти:
curl -vvI https://api.telegram.org/
и если ответ не будет что то типа
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=api.telegram.org
*  start date: Mar 24 15:21:45 2022 GMT
*  expire date: Apr 25 15:21:45 2023 GMT
*  subjectAltName: host "api.telegram.org" matched cert's "api.telegram.org"
*  issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certs.godaddy.com/repository/; CN=Go Daddy Secure Certificate Authority - G2
*  SSL certificate verify ok.

то поздравляю, ваш vps провайдер атакует ваши соединения атакой Man-in-the-middle

p.s. более подробно сертификат сервера смотреть можно так:
echo | openssl s_client -showcerts -servername api.telegram.org -connect api.telegram.org:443 2>/dev/null | openssl x509 -inform pem -noout -text

выполни команду на надежной машине и на твоем vps и сравни вывод

p.p.s. допускаю что на новой vps какие то проблемы с корневыми сертификатами, такое тоже возможно, если они не те что нужны а измененные, но тогда бы вообще ошибки не возникло бы (либо они забыли подменить сертификаты везде, в том числе у php-curl там кажется отдельная копия)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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