# HTTPS для сервиса Без него токен и расшифровки разговоров идут по сети открытым текстом. Схема простая: Caddy держит сертификаты и HTTPS, сервис сидит на localhost и наружу напрямую не смотрит. ## Что нужно от вас 1. **Открыть порты 80 и 443** на роутере и в брандмауэре Windows. Порт 80 нужен Let's Encrypt для проверки владения доменом, 443 - для самой работы. Сейчас оба закрыты. 2. **Проверить домены.** `asr.netranking.ru` уже указывает на 90.157.58.23. `asr.talkscore.ru` пока не резолвится - добавьте A-запись на тот же адрес. 3. **Порт 8756 можно закрыть снаружи** - после перехода на HTTPS он больше не нужен из интернета. ## Настройка В `config.toml` поменяйте две строки: ```toml [server] # Сервис больше не смотрит наружу: снаружи стоит Caddy host = "127.0.0.1" [security] # Доверяем заголовку с адресом клиента только от своего же прокси trust_proxy = "127.0.0.1" ``` **Зачем `trust_proxy`.** За прокси все запросы приходят с localhost, и список разрешённых адресов увидел бы вместо клиента саму машину - то есть пустил бы кого угодно. Caddy передаёт настоящий адрес в заголовке, и сервис его читает, но **только когда запрос пришёл от доверенного прокси**. Иначе заголовок подделал бы любой желающий. Домены прописаны в файле `Caddyfile` рядом со `start.bat`. Если понадобится изменить список - правьте его. ## Запуск Вместо `start.bat` запускайте **`start-https.bat`**: он поднимает сервис на localhost и Caddy перед ним. При первом запуске Caddy получит сертификаты - это занимает несколько секунд и требует, чтобы порт 80 был доступен снаружи. Дальше он продлевает их сам, напоминаний не нужно. Проверка: ``` curl https://asr.netranking.ru/health ``` ## Если сертификат не выдаётся Caddy пишет причину в своё окно. Частые случаи: - **порт 80 закрыт** - Let's Encrypt не может проверить домен; - **домен не указывает на эту машину** - проверьте A-запись; - **порт 80 занят** другим приложением (IIS, Skype) - освободите его. Пока сертификата нет, сервис доступен только по `http://localhost:8756` с самой машины. ## Автозапуск ``` schtasks /create /tn "talkscore-asr" /tr "C:\talkscore-asr\start-https.bat" ^ /sc onstart /ru SYSTEM /rl HIGHEST ```