Заказчик
Отзывы фрилансеров:
+ 7
- 0
Зарегистрирован на сайте 14 лет и 1 месяц
Есть телеграмм бот на python 3.6 с использованием вебхуков, использую telebot, aiohttp. Код который создает вебхук и запускает сервер:
API_TOKEN = <token>
WEBHOOK_HOST = 'ip'
WEBHOOK_PORT = # 443, 80, 88 or 8443 (port need to be 'open')
WEBHOOK_LISTEN = 'ip' # In some VPS you may need to put here the IP addr
WEBHOOK_SSL_CERT = 'path_to_cert/webhook_cert.pem' # Path to the ssl certificate
WEBHOOK_SSL_PRIV = 'path_to_cert/webhook_pkey.pem' # Path to the ssl private key
WEBHOOK_URL_BASE = "https://{}:{}".format(WEBHOOK_HOST, WEBHOOK_PORT)
WEBHOOK_URL_PATH = "/{}/".format(API_TOKEN)
bot = telebot.TeleBot(API_TOKEN)
app = web.Application()
home = os.path.abspath(os.path.dirname(sys.argv[0]))
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain(WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV)
app.router.add_post('/{token}/', handle)
bot.remove_webhook()
# Set webhook
bot.set_webhook(url=WEBHOOK_URL_BASE + WEBHOOK_URL_PATH, certificate=open(WEBHOOK_SSL_CERT, 'r'))
web.run_app(
app,
host=WEBHOOK_LISTEN,
port=WEBHOOK_PORT,
ssl_context=context,
)
После запуска работает примерно пол дня день. Потом падает с ошибкой
> "SSL error {error:1416F086:SSL
> routines:tls_process_server_certificate:certificate verify failed} "
Сертификаты использовал самоподписные. Пробовал вместо ip домен использовать, чтобы подтянулись сертификаты домена, не помогло. Пробовал разные порты, регистрировать самоподписный сертификат на телеграмм api через curl и @ перед именем сертификата. До этого работало с самоподписными около двух недель, перегенерил после возникновения ошибки, все равно вылетает часто.
Нужно удаленно по тимвьювер подключиться и помочь решить этот вопрос
Пишите только если есть реальный опыт работы
Разделы:
Опубликован:
23.01.2020 | 12:14