我需要在linux机器上安装Telegram机器人,但我遇到了一个问题。
据我所知,函数aiogram.utils.executer.start_webhook启动用于捕获POST请求的服务器。该服务器在后台使用aiohttp。
如何使它与自签名ssl证书一起工作?当使用纯aiohttp时,可以指定ssl上下文。对于aiogram来说,使用nginx这样的网络服务器是唯一的选择吗?
Aiogram文档中曾经有一个这样的例子,开发文档中还有另一个例子。我不知道为什么当前的示例(v2.2.2(没有它(也许它仍然有效,但被隐藏在kwargs中(。
旧示例显示了ssl
导入并根据Telegram bot规则设置WEBHOOK_SSL_CERT
和WEBHOOK_SSL_PRIV
位置。
开发分支(v3.0.0(将证书作为函数参数。
看起来当前的过程是在BaseBot:的初始化中设置ssl
# aiohttp main session
ssl_context = ssl.create_default_context(cafile=certifi.where())
这表明当前证书必须在证书存储中,否则您将需要向bot提供一个新的ssl_context
:self._connector_init = dict(limit=connections_limit, ssl=ssl_context)
这应该为您的具体案例指明正确的方向。