docs+fix: no-auth-mech на Prosody 13.0 — consider_websocket_secure=true (WS insecure после миграции); опыт в STATUS/WALKTHROUGH

This commit is contained in:
2026-08-30 15:13:36 +00:00
parent 4655d82f6e
commit 6a4ccd3e6d
3 changed files with 126 additions and 20 deletions
+18 -2
View File
@@ -28,7 +28,7 @@ modules_enabled = {
"carbons"; -- Копии сообщений на все устройства
"privilege"; -- XEP-0356 Privileged Entity (roster sync для мостов Slidge)
"pep"; -- Personal eventing (OMEMO, avatars)
"pubsub"; -- Publish-Subscribe (XEP-0060): ленты, узлы; основа PEP/bookmarks
-- "pubsub"; -- 13.0: НЕ модуль хоста! Загружается как Component (см. ниже Component "pubsub.nixg.ru")
"private"; -- Приватные хранилища XML
"blocklist"; -- Чёрный список
"vcard4"; -- vCard 4
@@ -79,7 +79,8 @@ https_ports = { 5281 }
https_interfaces = { "0.0.0.0" }
-- External components (XEP-0114) для мостов (Slidge/Telegram, затем WhatsApp)
component_ports = { 5347 }
-- ВНИМАНИЕ 13.0: component_ports УДАЛЁН (слушатель жёстко на 5347). Listener поднимается
-- наличием module-less Component-блока ниже. component_interfaces — глобально.
component_interfaces = { "0.0.0.0" }
component_secrets = {
["telegram.nixg.ru"] = "83276db6e870f540163f271d9bd7d3a390530b9ad7b45f58",
@@ -94,6 +95,13 @@ ssl = {
-- Разрешить WebSocket-подключения с нашего веб-клиента (страница на chat.nixg.ru)
cross_domain_websocket = { "https://chat.nixg.ru", "https://xmpp.nixg.ru" }
-- WebSocket за TLS-прокси (Caddy → nginx → Prosody): Prosody 13 терминально снижает
-- TLS на edge, и WS-сессия приходит "insecure" → SASL-механизмы не предлагаются →
-- Converse: "no-auth-mech" + бесконечные переподключения (белый кружок).
-- Штатный флаг mod_websocket (Prosody 13+): считать WS endpoint безопасным.
-- Использовать вместо trusted_proxies (тот влияет только на логирование IP).
consider_websocket_secure = true
-- Домен (JID юзеров: user@nixg.ru)
VirtualHost "nixg.ru"
-- Аутентификация: внутренняя (mod_auth_internal_hashed)
@@ -121,6 +129,10 @@ VirtualHost "nixg.ru"
};
}
-- PubSub (XEP-0060) — в 13.0 ТОЛЬКО как Component (не модуль хоста).
-- Основа для bookmarks/лент; PEP (личные узлы) продолжает жить на VirtualHost через mod_pep.
Component "pubsub.nixg.ru" "pubsub"
-- MUC-компонент (групповые чаты) conference.nixg.ru
Component "conference.nixg.ru" "muc"
name = "ICQ Family Chat"
@@ -135,6 +147,10 @@ Component "upload.nixg.ru" "http_upload"
http_upload_file_size_limit = 10 * 1024 * 1024 -- 10 MB (лимит HTTP-парсера Prosody)
http_upload_expire_after = 7 * 24 * 60 * 60 -- хранить 7 дней
http_upload_require_authentication = true -- только авторизованные
-- 13.0: слот выдаётся ТОЛЬКО origin.type=="c2s" ИЛИ JID из access-списка.
-- Slidge просит слот от имени компонента telegram.nixg.ru → добавить в access,
-- иначе "No upload slot" (регрессия 13.0, в 0.11 пускало компоненты молча).
http_upload_access = { "telegram.nixg.ru" }
http_upload_path = "/var/lib/prosody/http_upload"
-- Внешний URL (без :5281) — Caddy на vps02 проксирует upload.nixg.ru → 10.8.0.2:5281
http_external_url = "https://upload.nixg.ru"