Не подключается сертификат к telegram

695
25 января 2017, 01:13

Пытаюсь подключить сертификат к телеграм.

Создал сертификат командой:

openssl req -newkey rsa:2048 -sha256 -nodes -keyout ИМЯ.key
-x509 -days 365 -out ИМЯ.pem -subj
"/C=RU/ST=КРАЙ/L=ГОРОД/0=ПОДРАЗДЕЛЕНИЕ/CN=МОЙСАЙТ"

Ключ создался. На выходе получил:

ИМЯ.key
ИМЯ.pem

Далее - в настройках сайта (использую ISPmanager) добавил свой сертификат. Привязал его к сайту, который указывал при создании сертификата. Всё прошло успешно.

Далее. Воспользовался командой:

curl -F "url=https://МОЙСАЙТ/bot.php"
-F "certificate=ИМЯ.pem"
"https://api.telegram.org/botТОКЕНМОЕГОБОТА/setwebhook"

В ответ пришло сообщение:

{"ok":true,"result":true,"description":"Webhook was set"}

Вроде как ключ установился (если я правильно понял). Вписываю в браузере строку:

https://api.telegram.org/botТОКЕНМОЕГОБОТА/getWebhookInfo

Возвращает такой результат:

{"ok":true,"result":{"url":"https://МОЙСАЙТ/bot.php","has_custom_certificate":false,"pending_update_count":7,"max_connections":40}}

Меня напрягает это:

"has_custom_certificate":false

Мой сертификат получается не самоподписной? (Или что???)

Ну собственно, мой скрипт обработки bot.php:

<?php
$updates = file_get_contents("php://input");
$updates = json_decode($updates, true);
$chatID = $updates["message"]["chat"]["id"];
$text = $updates["message"]["text"];
sendMessage($chatID, $text);
function sendMessage($chatID, $message)
{
    $url = $GLOBALS[website]."/sendMessage?chat_id=".$chatID."&text=".urldecode($message);
    file_get_contents($url);
}

Пишу своему боту - в ответ тишина. Получается, вебхук не срабатывает. Что не так сделано?

Answer 1

Чтобы Telegram мог отсылать данные по ссылкам, где установлен самоподписанный сертификат, нужно методом setWebhook передавать вместе со ссылкой сам сертификат (параметр certificate, формат inputFile). Почитать про сертификаты можно здесь: self-signed cert guide: https://core.telegram.org/bots/self-signed

READ ALSO
Рекурсия в функции PHP

Рекурсия в функции PHP

Есть такой код:

376
Не правильно работает функция preg_match()

Не правильно работает функция preg_match()

Здравствуйте, задание: Написать функцию, которая выводит список файлов в заданной директории, которые содержат искомое словоДиректория...

464
Как вывести данные из базы EAV в таблицу?

Как вывести данные из базы EAV в таблицу?

Есть база EAV с таблицами: product - продукты (ключ: product_id); params - параметры продуктов (ключи: product_id, param_id); value - значения параметров продуктов (ключ:...

337
Дописывать строки в файл CSV php

Дописывать строки в файл CSV php

Этот код почему-то удаляет все данные из файла и записывает новые при каждом вызове saveRow()

506