Подскажите пожалуйста, как отключить SSL для aiohttpSession?

Пишу небольшого бота на python 3.12 с использованием aiogram и asyncio.

Бот будет крутится на работе, на одном из серверов. Есть политика безопасности, которая позволяет выход во внешний интернет только через корпоративный прокси, поэтому пришлось использовать еще и aiohttp.

Столкнулся с проблемой, получаю ошибку валидации SSL, т.к. рабочий прокси http, возможно и по другой причине. Так вот, прошу помощи - я перепробовал буквально 10-15 страниц поиска гугла, нейросетки и документацию используемых библиотек, но так и не нашел способ отключить проверку ssl.

Собственно код:

import aiohttp
import asyncio
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.filters.command import Command
from aiohttp import BasicAuth
from aiogram.client.session.aiohttp import AiohttpSession

auth = BasicAuth(login='Login', password='Pass')
session = AiohttpSession(proxy=('http://proxy.corp.company.ru:8080', auth))

logging.basicConfig(level=logging.INFO)
bot = Bot(token="token", session=session)
dp = Dispatcher()

@dp.message(Command("start"))
async def cmd_start(message: types.Message):
    await message.answer("Hello!")

async def main():
    await dp.start_polling(bot)

if __name__ == "__main__":
    asyncio.run(main())

Ошибка:

введите сюда описание изображения

Что уже пробовал:

1). Использовать в AiohttpSession TCPConnector(ssl = False)

2). Запускать скрипт через ватник, в нем включая\отключая прокси

3). Создавать ssl_context, отключать его и т.п.


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

Автор решения: Yaroslav

Нашёл такое: ssl_context.check_hostname и verify_mode

ВОЗМОЖНО, вам поможет следующая часть кода отсюда:

    context = ssl.create_default_context()
    context.check_hostname = False
    context.verify_mode = ssl.CERT_NONE

Надеюсь, что помог.

→ Ссылка
Автор решения: sit123

Если ваша компания использует корпоративный сертификат, попробуйте его добавить в доверенные корневые центры сертификации.

→ Ссылка
Автор решения: unzera

можно попробовать обновить значение ssl в _connector_init у класса AiohttpSession.

попробуй так:

import ssl

class AHSession(AiohttpSession):
    def __init__(self, *args, **kwargs):
        ssl_context = ssl.create_default_context()
        ssl_context.check_hostname = False
        ssl_context.verify_mode = ssl.CERT_NONE

        kwargs['connector'] = aiohttp.TCPConnector(ssl=ssl_context)
        super().__init__(*args, **kwargs)
        self._connector_init['ssl'] = ssl_context

auth = BasicAuth(login='Login', password='Pass')
session = AHSession(proxy=('http://proxy.corp.company.ru:8080', auth))
→ Ссылка