Телеграм, 1С http-сервис, webhook по SSL

31.10.21

Интеграция - Мессенджеры и боты

Как установить Телеграм webhook по HTTPS на 1С http-сервис используя самоподписанный (self signed) сертификат на IP адрес. Личный опыт.

Пару дней не мог установить webhook телеграм бота на HTTP-сервис 1С по протоколу HTТPS. Все что-то мешало... То телеграм не хотел сертификат принимать, то в IIS не получалось загрузить свой сертификат. По этому опубликую личный опыт как все таки у меня это получилось...

 

1. Качаем и устанавливаем OpenSSL. Генерируем сертификат. CN это внешний адрес вашего сервера на котором виден HTTP-сервис. "-days 9999" - 28 лет, что бы два раза не бегать )))

openssl req -newkey rsa:2048 -sha256 -nodes -keyout webhook.key -x509 -days 9999 -out webhook.cer -subj "/C=US/ST=State/L=Cyti/O=You Company/CN=IP_Адрес_сервера"

В итоге получим два файла webhook.key (приватный ключ) и webhook.cer (собственно сертификат).

2. Ищем в интернете утилиту pvk.exe авторства Dr Stephen N Henson. Конвертируем приватный ключ в формат PVK и устанавливаем пароль на ключ. Например 12345678

pvk -in webhook.key -out webhook.pvk –topvk

3. Создаем из файла сертификата и файла PVK сертификат PFX. 

pvk2pfx.exe -pvk webhook.pvk -spc webhook.cer -pfx webhook.pfx -pi 12345678 -po 12345678

4. Этот сертификат можно спокойно установить в IIS и забиндить SSL порт с этим сертификатом на порт 443.

5. Вешаем веб-хук телеграм бота на наш HTTP-сервис 1С. "Шаблон" и "Имя_bot" - это на случай если наш HTTP-сервис будет обслуживать несколько ботов.

curl -F "url=https://адрес_сервера:443/telegram_hs/hs/webhook/шаблон/имя_bot" -F "certificate=@webhook.cer" https://api.telegram.org/botТокенБота/setWebhook -k

6. Проверяем веб-хук.

https://api.telegram.org/botТокенБот/getWebhookInfo

 

 

has_custom_certificate = true - значит сертификат установлен.

7. Теперь нужно сделать так, чтобы телеграм мог достучаться до HTTP-сервиса без авторизации. Для этого заводим в 1С пользователя (например hs) с паролем (пусть 12345678). На сервере IIS где опубликованы веб-сервисы и HTTP-сервисы копируем публикацию C:\inetpub\wwwroot\myTest -> C:\inetpub\wwwroot\myTest_noauth. В диспетчере служб IIS преобразовываем новый каталог в приложение. Редактируем файл default.vrd примерно так:

 

 

т.е. выключаем все, кроме HTTP-сервиса "WebHook". У меня не опубликованы веб-сервисы, по этому их нет в файле. У вас могут быть, значит их тоже надо отключить. Как то так:

 

 

Ну вот и все вроде бы. Сообщения пользователей из бота прилетают в 1С. Вот эхо-бот на 1С отвечает пользователю.

 

P.S. Пункт 7 можно не делать, если веб-хук повесить сразу с указанием имени и пароля пользователя!

curl -F "url=https://hs:12345678@адрес_сервера:443/telegram_hs/hs/webhook/шаблон/имя_bot" -F "certificate=@webhook.cer" https://api.telegram.org/botТокенБота/setWebhook -k

Спасибо uno-c за подсказку!

телеграм вебхук самоподписанный telegram webhook self-signed

См. также

Мессенджеры и боты Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Интеграция мессенджера WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi.

15600 руб.

23.06.2023    9484    58    12    

34

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38199    108    161    

201

SALE! 25%

Мессенджеры и боты Системный администратор Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С - конструктор чат-ботов в Телеграм.

15000 11250 руб.

18.06.2021    65567    312    272    

369

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    30270    35    49    

71

Мессенджеры и боты Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Данное расширение представляет собой интерфейс взаимодействия 1С с сервисом Wazzup. Данный сервис позволяет вести беседу с использованием номера телефона, привязанного к Whatsapp. Почитать о сервисе и его условиях использования можно по ссылке https://wazzup24.com/. На данный момент расширение поддерживает почти все доступные через API функции. Обновление от 19.05.2023, версия 2.1!

14400 руб.

30.11.2020    13595    8    13    

15

Мессенджеры и боты SMS рассылки Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Решение реализовано в виде расширения. Заменяет отправку смс на отправку в WhatsApp через Green-api. Отправка чека картинкой.

7800 руб.

15.05.2024    1544    3    6    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Torin 827 31.10.21 10:02 Сейчас в теме
(0) Зачем мудрить с само подписанными? если можно получить сертификат через Buypass, ZeroSSL,Let's Encrypt
2. Goody 130 31.10.21 13:11 Сейчас в теме
(1)во первых срок действия ограничен, во вторых многие бесплатные требуют доменное имя.

Вообще-то никто не заставляет пользовать самоподписанный. Но вариант есть, о чем и статья.
3. aleksey2 88 01.11.21 09:08 Сейчас в теме
для 1С нужен именно такой серт-т (openssl)
4. Goody 130 01.11.21 12:36 Сейчас в теме
(3)Прости, не понял... Вопрос или утверждение? )))
5. Mikhail-Kobtsev 02.11.21 09:12 Сейчас в теме
автор, подскажи

твой HTTP сервис виден всему интернету?
6. Goody 130 02.11.21 12:53 Сейчас в теме
(5)Вопрос не понял... Если веб-сервис не будет виден "всему интернету", то как на него повесить веб-хук? :-)
Конечно же адрес веб-сервиса должен быть внешним. Доступ к нему - это немного другая тема...
Конкретно мой виден всему интернету.
Mikhail-Kobtsev; +1 Ответить
7. Mikhail-Kobtsev 02.11.21 13:58 Сейчас в теме
8. METAL 299 03.11.21 14:43 Сейчас в теме
Коллега, а можно вопрос - зачем это? В чём отличие от обычных ботов? Правильно ли понимаю, что webhook позволяет не опрашивать api по расписанию, а обрабатывать сообщение от пользователя по событию его получения, а не по расписанию и анализу обновлений через getUpdates?
9. Goody 130 03.11.21 19:20 Сейчас в теме
(8)абсолютно так
getUpdates это больше для отладки. Нормальный бот должен работать через вебхук. ;)
10. uno-c 264 04.11.21 14:11 Сейчас в теме
Теперь нужно сделать так, чтобы телеграм мог достучаться до HTTP-сервиса без авторизации
Моветон. Телеграм умеет делать basic auth на вебхуках.
11. Goody 130 04.11.21 14:22 Сейчас в теме
(10) А показать как заставить телеграм сделать basic auth не будет моветоном?
https://core.telegram.org/bots/api#setwebhook - что то не вижу я такой возможности, что-то новое придумали?
12. uno-c 264 04.11.21 14:23 Сейчас в теме
15. Goody 130 04.11.21 18:54 Сейчас в теме
(12) БЛИН! Как я о таком не подумал!!! :-)
Спасибо!
13. uno-c 264 04.11.21 14:29 Сейчас в теме
https://its.1c.ru/db/metod8dev/content/5977/hdoc
2. Выпуск самоподписанного сертификата
Выпуск самоподписанного сертификата для веб-сервера IIS максимально простой.

Этот способ не прошел или не пробовали?
14. Goody 130 04.11.21 15:14 Сейчас в теме
(13) Пробовал конечно. Но во первых срок жизни такого сертификата невелик, во вторых скормить его телеграму при установке вебхука не получилось. Уж как я только его не вертел )))
16. Punk 05.11.21 08:47 Сейчас в теме
Александр, спасибо за статью!
Решение нашлось 5 лет спустя, после того как интересовался этой темой. :)
Но лучше позже чем никогда!
Еще раз благодарю за статью!
17. Eldar_Umerov 26.08.22 16:48 Сейчас в теме
Подскажите пожаулуйста - где можно найти утилиту о которой говорится на шаге 2 (pvk.exe) или может есть другая актуальная утилита ? Заранее благодарен.
18. rumik007 29.08.22 09:46 Сейчас в теме
19. user1755044 28.09.22 04:37 Сейчас в теме
В Apache подобная настройка сертификата?
20. Goody 130 28.09.22 08:44 Сейчас в теме
(19) Ну если знаете как к апачу прикрутить сертификат, то скорее всего взлетит. )))
Я на апаче не проверял...
21. wrooom 226 01.10.22 13:35 Сейчас в теме
Я добавил в telegram сертификат, все хорошо. А как включить отладку?
22. Goody 130 01.10.22 16:56 Сейчас в теме
23. wrooom 226 01.10.22 17:30 Сейчас в теме
24. Goody 130 01.10.22 21:10 Сейчас в теме
(23) Это надо опубликовать веб сервисы 1С с включенной отладкой. В инете много инструкций по этому поводу.
25. wrooom 226 03.10.22 13:34 Сейчас в теме
(24) Заработало, если указать порты сервера отладки 1560:1591
27. lex1972 6 03.11.22 12:02 Сейчас в теме
Отличная статья! Спасибо.
28. hd2404 18.11.22 12:12 Сейчас в теме
подскажите пожалуйста, куда копать, настроил, хук работал неделю и перестал. я так понял телеграмм ругается на сертификат при вызове хука, хотя сертификат принял без проблем и работал же... удаление и переустановка хука с сертификатом не помогает, рестарт бота тоже, смена токена тоже.. на новом боте все аналогично, в общем тупик какой то.

getWebhookInfo:

url: https://адрес http сервиса
has_custom_certificate: Да
last_error_date: 18.11.2022 12:00:36
last_error_message: SSL error {error:0A000086:SSL routines::certificate verify failed}
pending_update_count :
ip_address :
max_connections: 100
29. пользователь 04.01.23 03:14
Сообщение было скрыто модератором.
...
30. user1371669 04.01.23 03:18 Сейчас в теме
(28)
Удалось решить вопрос?
Оставьте свое сообщение