Не получается настроить webhook. SSL сертификаты есть, все работает при использовании ngrok/tuna. Ниже сам код:

import logging
import sys
import ssl

from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiohttp import web
import asyncio
from aiogram import Bot, Dispatcher, Router, types
from aiogram.filters import CommandStart
from aiogram.types import Message
from aiogram.utils.markdown import hbold
from aiogram.webhook.aiohttp_server import SimpleRequestHandler, setup_application

TOKEN = "TOKEN"
WEB_SERVER_HOST = "127.0.0.1"
WEB_SERVER_PORT = 8443
WEBHOOK_PATH = "/webhook"
WEBHOOK_URL = "https://mysyte.ru"

WEBHOOK_SSL_CERT = '/Users/ivanpavlov/PycharmProjects/GardenBotV3/GardenBotV3/fullchain.pem'
WEBHOOK_SSL_PRIV = '/Users/ivanpavlov/PycharmProjects/GardenBotV3/GardenBotV3/privkey.pem'
router = Router()

@router.message(CommandStart())
async def command_start_handler(message: Message) -> None:
    logging.debug(f"Received command_start: {message}")
    await message.answer(f"Hello, {hbold(message.from_user.full_name)}!")


@router.message()
async def echo_handler(message: types.Message) -> None:
    logging.debug(f"Received message: {message}")
    try:
        await message.send_copy(chat_id=message.chat.id)
    except TypeError:
        await message.answer("Nice try!")

async def on_startup(bot: Bot) -> None:
    logging.info("Bot has been started")
    await bot.set_webhook(f"{WEBHOOK_URL}{WEBHOOK_PATH}")
    logging.info("Webhook has been set up")

async def main() -> None:
    bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
    dp = Dispatcher()
    dp.include_router(router)
    dp.startup.register(on_startup)
    app = web.Application()
    webhook_requests_handler = SimpleRequestHandler(
        dispatcher=dp,
        bot=bot,
    )

    webhook_requests_handler.register(app, path=WEBHOOK_PATH)
    context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
    context.load_cert_chain(
        WEBHOOK_SSL_CERT, WEBHOOK_SSL_PRIV
    )

    setup_application(app, dp, bot=bot)

    await web._run_app(app, host=WEB_SERVER_HOST, port=WEB_SERVER_PORT,
                       ssl_context=context
                        )

if __name__ == "__main__":
    logging.basicConfig(level=logging.DEBUG, stream=sys.stdout)
    logging.getLogger('aiogram').setLevel(logging.DEBUG)
    asyncio.run(main())

Ответы (0 шт):