# Домены и проверка владения

> Как подтвердить домен подписки TXT-записью или файлом, что значат статусы и почему подтверждается точное имя.

Домен подписки нужно подтвердить: так никто не сможет выдать себя за вас, положив ваш ID в свою подписку. FlowLock
хранит имя подтверждённого домена и его хеш SHA-256; приложения сообщают серверу только хеш домена, с которого
взята подписка.

## Добавить домен

1. Кабинет → «Домены» → введите имя (`sub.example.com`) или целую ссылку подписки — кабинет возьмёт из неё домен.
2. Подтвердите его **одним** из способов ниже. Кабинет покажет готовые значения для копирования.
3. Нажмите «Проверить» — или подождите: новый домен кабинет сам проверяет раз в час первые 72 часа.

## TXT-запись

У регистратора или в DNS-панели (Cloudflare и др.):

```
_flowlock.sub.example.com.  TXT  "flowlock-provider=k7m2x9q4bd"
```

Имя записи — `_flowlock.` перед вашим доменом. На поддомене может быть сколько угодно других TXT-записей: кабинет
ищет среди них ту, что равна `flowlock-provider=<ID>`.

## Файл на сайте

Файл `https://sub.example.com/.well-known/flowlock-provider` с текстом:

```
flowlock-provider=k7m2x9q4bd
```

Файл должен отдаваться прямо с этого домена: порт 443, действительный сертификат, код 200, без перенаправлений,
не больше 4 КБ. Домен, который указывает на частный адрес (`10.x`, `192.168.x` и т. п.), так не подтвердить.

## Статусы

| Статус                      | Что значит                                                                     |
| --------------------------- | ------------------------------------------------------------------------------ |
| ждёт проверки (`pending`)   | домен добавлен, проверка ещё не прошла                                         |
| подтверждён (`verified`)    | всё работает                                                                   |
| ошибка проверки (`failing`) | последняя проверка не прошла; подписки пока работают                           |
| потерян (`lost`)            | три неудачи подряд, не меньше 48 часов; подписки с домена работают как обычные |

Если проверка не прошла, кабинет пишет причину: нет ни записи, ни файла; запись есть, но с другим ID; DNS не
ответил; файл отдаётся не с кодом 200; файл не скачался; домен смотрит на частный адрес.

## Важно

- Подтверждается **точное имя**: `sub.example.com` и `example.com` — разные домены, `www.` тоже отдельный.
  Порт не важен: `sub.example.com:2096` = `sub.example.com`.
- Русские домены можно вводить как есть (`подписка.рф`): кабинет переведёт их в punycode.
- IP-адрес подтвердить нельзя: подписки по IP работают как обычные.
- Запись или файл **не удаляйте**: кабинет перепроверяет домен раз в сутки. Потерянный домен возвращается сам, как
  только проверка снова пройдёт.
- Один домен может подтвердить несколько провайдеров, у каждого своя TXT-запись — например, общая панель.
- Доменов в кабинете — до 50, ручных проверок — до 20 в час.

Адреса для [переезда подписки](https://flowlock.cc/docs/app-management.md) (`new-url`, `new-domain`, `fallback-url`), для команды
«Сменить адрес» и для [ограниченных ссылок](https://flowlock.cc/docs/install-links.md) тоже должны быть на ваших подтверждённых доменах.
