Задать вопрос
Urichalex
@Urichalex
Кратко о себе)

Как правильно указать сертификат для апи Telegram?

Устанавливаю вебхук для бота Telegram.
Использую irazasyed/telegram-bot-sdk
К домену подключил сертификаты от Let's encrypt. Он создал 4 файла:
cert.pem
chain.pem
fullchain.pem
privkey.pem

В настройках хоста nginx указан fullchain.pem и private.pem как приватный
listen 123.456.789:443 ssl;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/letsencrypt/live/example.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.ru/privkey.pem;

При создании вебхука указываю мой урл и путь к сертификату
use Telegram\Bot\Api;
$telegram = new Api('мой_токен_бота');

$telegram->setWebhook([
  'url' => 'https://example.ru/tgbot',
  'certificate' => __DIR__ . '/cert/fullchain.pub'
]);

Проверяю работу:
$tg = new Telegram($token);
print_r($tg->getWebhookInfo());

Отдает в ответе ошибку:
SSL error {336134278, error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed}

С SSL работаю впервые...
Подскажите верное направление)
  • Вопрос задан
  • 5182 просмотра
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Добавлю инфу для тек кто не в курсе.

Сейчас Telegram уже принимает и само подписанные сертификаты и от Let's encrypt, достаточно установить сертификат на сервер, в случае с nginx:
listen 443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/domain/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/domain/fullchain.pem;

и отправить fullchain.pem в телеграм командой:
curl -F "url=https://domains/адрес вебхук" -F "certificate=fullchain.pem" "https://api.telegram.org/botTOKEN/setwebhook"
Ответ написан
Комментировать
Urichalex
@Urichalex Автор вопроса
Кратко о себе)
Отвечу сам)
Почему-то телеграм не захотел принимать сертификат именно от Let's encrypt.
Заказал сертификат в регру - принял без проблем.
Так же самоподписанный принял
Ответ написан
Комментировать
@araqel
Окажите любезность, посоветуйте что надо сделать для получения того же на клиенте на SIM800H SIMCOM, за которым стоит ESP32. Загрузка сертифика показана здесь: https://github.com/vshymanskyy/TinyGSM/tree/master...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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