#650: Получение почты по IMAP с самоподписанными сертификатами
Отредактирована: 54 дня назадСимптомы
При попытке подключиться к IMAP серверу наблюдаются ошибки:
ERROR 2025-05-06 18:08:15,541 collect_imap_emails 533 140523956472704 Couldn't find host for EMAIL channel (UID) NAME, reason: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1017)
Решение
ВНИМАНИЕ, Решение применимо начиная с версии Swarmica v4.6.x
Для самоподписанных (self-signed) сертификатов подключите корневые сертификаты, использованные при генерации этих сертификатов:
- Примонтируйте папку с сертификатами и ключами в
/etc/sslконтейнераcron, добавив строчку вvolumesвdocker-compose.yml:cron: <<: *django restart: always depends_on: - postgres - redis command: /start-cron volumes: - /path/to/ssl/folder/custom-certs.crt:/etc/ssl/custom-certs.crt:ro - ./.env:/etc/environment:ro - swarmica_ai_assistant:/swarmica/swarmica/ai_assistant/articles/:z - swarmica_cron_d:/etc/cron.d/:z - swarmica_ugc:/swarmica/swarmica/attachments:z - swarmica_runtime:/swarmica/swarmica/runtime_scripts/:z labels: - "traefik.enable=false" - Аналогично сделайте для
djangoконтейнера:django: &django image: reg.gl.swd.im/swarmica/backend:${SW_BACKEND_VERSION} depends_on: - postgres - redis volumes: - /path/to/ssl/folder/custom-certs.crt:/etc/ssl/custom-certs.crt:ro - swarmica_ai_assistant:/swarmica/swarmica/ai_assistant/articles/:z - swarmica_static:/swarmica/swarmica/static:z ... - В
/root/swarmica/.envдобавьте строчки:IMAP_SSL_CUSTOM_CONTEXT=true IMAP_SSL_CUSTOM_LOCATIONS="/etc/ssl/custom-certs.crt" - Перезагрузите Swarmica:
docker compose down && docker compose up -d
Если необходимо так же включить менее защищенные шифры, необходимо сделать следующее:
- Добавить в
.envстрочку:IMAP_SSL_CUSTOM_CIFERS=DEFAULT - Перезагрузить Swarmica:
docker compose down && docker compose up -d
Причина
- Сервер IMAP использует самоподписанный (self-signed) сертификат
- Используется устаревший набор шифров (RSA) на сервере, которые отключены в Python 3.10 из соображений безопасности