Телеграм, 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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

SALE! 50%

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

Расширение 1С с полным набором инструментов для качественных транзакционных, триггерных и маркетинговых рассылок Email, SMS, MAX, WhatsApp, Telegram. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

6100 3050 руб.

07.04.2014    97509    87    205    

169

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

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

30500 руб.

23.06.2023    17695    58    27    

62

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

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

14900 руб.

15.11.2018    42771    58    60    

87

Мессенджеры и боты 1С 8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Готовый чат-бот MAX для 1С виде расширения. Клиенты проверяют остатки и заказы прямо в мессенджере. Ролевая модель, гибкое меню, отправка файлов, диалоги. Подключайте свою логику через внешние обработки.

14640 руб.

26.03.2026    2232    4    0    

7

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

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

15250 руб.

18.06.2021    85200    330    279    

404

Мобильная разработка Мессенджеры и боты 1С:Предприятие 8 Платные (руб)

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

13420 руб.

27.12.2021    52819    130    182    

228

Мессенджеры и боты 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Управление голосовыми ботами TWIN из 1С. Автоматизация звонков. Расширение позволяет разрабатывать свои обработки, которые могут программно создавать и запускать Задания для TWIN и получать из них результаты звонков.

12200 руб.

17.12.2024    1580    1    0    

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

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

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

Этот способ не прошел или не пробовали?
14. Goody 134 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 134 28.09.22 08:44 Сейчас в теме
(19) Ну если знаете как к апачу прикрутить сертификат, то скорее всего взлетит. )))
Я на апаче не проверял...
21. wrooom 288 01.10.22 13:35 Сейчас в теме
Я добавил в telegram сертификат, все хорошо. А как включить отладку?
22. Goody 134 01.10.22 16:56 Сейчас в теме
23. wrooom 288 01.10.22 17:30 Сейчас в теме
(22) отладку бота в 1С.
24. Goody 134 01.10.22 21:10 Сейчас в теме
(23) Это надо опубликовать веб сервисы 1С с включенной отладкой. В инете много инструкций по этому поводу.
25. wrooom 288 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)
Удалось решить вопрос?
Для отправки сообщения требуется регистрация/авторизация