HTTPS и сертификаты
HTTPS защищает пароли, сообщения и файлы при передаче между устройством и сервером. Сертификаты устанавливаются на обратном прокси перед TolkTak.
Caddy в установке через Compose
Установка через Compose включает Caddy. Он получает бесплатный сертификат Let's Encrypt для TOLKTAK_DOMAIN и сам продлевает его. Для этого нужны:
- DNS-запись домена, указывающая на сервер;
- порты 80/TCP и 443/TCP, доступные из интернета.
Сертификаты хранятся в томе caddy-data. Если сертификат не выпускается, причина видна в docker compose logs caddy; обычно это DNS-запись, которая ещё не указывает на сервер, или закрытый порт 80.
Свой обратный прокси
Для сервера в интернете нужен доверенный сертификат на его доменное имя.
- nginx: получение и продление через ACME-клиент, например Certbot. Центр сертификации Let's Encrypt выдаёт бесплатные сертификаты.
- Свой Caddy: сертификаты для доменов в конфигурации выпускаются автоматически.
При ручной настройке ACME-клиента доступны разные способы подтверждения домена:
| Способ | Что требуется |
|---|---|
| HTTP-01 | Домен указывает на сервер; порт 80/TCP доступен из интернета. |
| DNS-01 | TXT-запись в DNS. Подходит при закрытом порте 80 и для wildcard-сертификатов. |
Условия описаны в документации Let's Encrypt. Продление должно быть автоматическим; после замены сертификата nginx требуется перечитать конфигурацию.
Самоподписанный сертификат
Для закрытой сети возможен сертификат собственного центра сертификации. Такой вариант требует отдельной настройки доверия на каждом устройстве участников.
Имя или IP сервера должны быть указаны в поле Subject Alternative Name. Приложение не отключает проверку сертификатов: недоверенная цепочка, несовпадение имени или истёкший срок помешают подключению.
Работа без сертификата
Сервер, запущенный через docker run, работает по обычному HTTP; для локальной сети этого достаточно. Пароли, сообщения и файлы тогда передаются без шифрования. Голос и видео между приложением и LiveKit всегда защищены DTLS-SRTP; сквозное шифрование в TolkTak пока не реализовано.
Настройка маршрутизации HTTPS — в разделе «Обратный прокси».