Telegram больше не принимает групповые сертификаты. Получение ошибки в pythonanywhere - PullRequest
1 голос
/ 18 января 2020

Я не могу отправлять сообщения своему боту, поскольку я размещаю его на pythonany везде. Получение сообщения об ошибке вроде невозможности на сервер из-за того, что telegram больше не поддерживает подстановочные сертификаты, как упомянуто в официальном блоге pythonanywhere ссылка на сообщение в блоге . Пожалуйста, помогите мне, если кто-нибудь знает, что это за решение проблема

  raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bottokenvalue/sendMessage (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f094debf050>: Failed to establish a new connection: [Errno 101] Network is unreachable'))
2020-01-17 21:58:04,377: Retrying (Retry(total=2, connect=None, read=None, redirect=0, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f094da4c610>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /bottoken/sendMessage
2020-01-17 21:58:05,377: Retrying (Retry(total=1, connect=None, read=None, redirect=0, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f094da4c4d0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /bottokenbot/sendMessage
2020-01-17 21:58:06,377: Retrying (Retry(total=0, connect=None, read=None, redirect=0, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f094da4c810>: Failed to establish a new connection: [Errno 101] Network is unreachable')': 

1 Ответ

3 голосов
/ 18 января 2020

ОБНОВЛЕНИЕ

Вы можете развернуть на heroku даже с бесплатной учетной записью, которая, похоже, использует подстановочные сертификаты для домена, подобного your_app.herokuapp.com. Это использует библиотеку python-telegram-bot в конфигурации webhook, как указано здесь .

Я почти уверен, что сертификаты героку являются подстановочными, поэтому я не уверен, что Telegram изменил их Система для разрешения подстановочных сертификатов. Их официальная документация по-прежнему предполагает, что сертификаты с подстановочными знаками не допускаются.


Оригинальный ответ ...

Это внезапное * отсутствие поддержки подстановочных сертификатов должно влиять только на ботов, которые созданы с поддержкой webhook (и размещены в домене с подстановочными сертификатами).

Вероятно, есть несколько вариантов, чтобы обойти это:

  • Удалите поддержку webhook из вашего бота. Это, вероятно, наименее предпочтительный вариант, если только это не бот с низким трафиком c для личного использования, и по какой-то причине вы не включили поддержку webhook. Без поддержки webhook ваш бот подключается к Telegram API как клиент, а не выступает в роли сервера, к которому система Telegram подключается к TO. Этот метод подключения называется «Опрос».

  • Переход на платную учетную запись python в любом месте, которая поддерживает пользовательские домены . С пользовательским доменом вы можете настроить этот с сертификатом без подстановочных знаков. Вы можете получить бесплатный сертификат от Let's Encrypt.

Конечно, вы можете воспользоваться этой возможностью, чтобы перейти на другой хост, но будьте осторожны, так как многие подобные хосты будут поддерживать только сертификаты с подстановочными знаками для своих бесплатных учетные записи: все, что дает вам публичный c URL-адрес youraccount.provider.tld

РЕДАКТИРОВАТЬ

(*) Из этого вопроса я пришел к выводу, что ограничение на сертификаты подстановочных знаков имело Внезапно / недавно было введено, однако это относится еще к марту 2017 года, согласно этому ответу . Информацию о других ограничениях конфигурации SSL см. В официальных документах .

...