# Домены и HTTPS

URL: https://docs.nolay.ru/guides/domains/
Updated: 2026-09-23

> Направить домен на сервер, добавить его проекту и получить сертификат без ручных действий.

После этой страницы проект будет открываться по вашему домену с HTTPS. Сертификат выпускает и продлевает агент на вашем сервере через Let's Encrypt.

## Что нужно до начала

| Что | Как проверить |
|---|---|
| Проект работает | Статус в панели «Работает» |
| Домен ваш | Вы можете менять DNS-записи у регистратора или DNS-хостинга |
| Порты 80 и 443 открыты | Файрвол хостинга пропускает входящие на 80 и 443 |

Если у сервера нет публичного адреса, читайте [туннель за NAT](/guides/tunnel/): там домен подключается записью CNAME.

## Шаги

1. У регистратора домена создайте запись `A` с адресом вашего сервера. Для `www` создайте вторую запись `A` или `CNAME` на основной домен. Если у сервера есть IPv6, добавьте и `AAAA`.

| Тип | Имя | Значение |
|---|---|---|
| `A` | `app.example.com` | `203.0.113.10` |
| `A` | `www.app.example.com` | `203.0.113.10` |

2. Дождитесь, пока запись заработает. Проверить можно с любого компьютера:

```sh
dig +short A app.example.com
```

Команда должна вернуть адрес сервера. Обычно это минуты, у некоторых регистраторов до нескольких часов.

3. В панели откройте проект, вкладка «Настройки», поле «Домены». Несколько доменов пишутся через пробел или запятую. Отметьте «Редирект с www на домен без www», если нужен переход с `www.` на основной адрес. Нажмите «Сохранить и задеплоить».

![Домены задаются в настройках проекта, по одному или через пробел.](https://docs.nolay.ru/shots/ru/project-domains-light.png)

4. Агент обновит прокси и выпустит сертификат. Обычно это меньше минуты после того, как DNS указывает на сервер.

То же самое в `nolay.toml`:

```toml
[proxy]
domains = ["app.example.com"]
redirect_www = true
```

## Что важно знать

- Маски вида `*.example.com` не поддерживаются: каждый поддомен указывается отдельно.
- Домены пишутся в нижнем регистре.
- HTTP сам перенаправляется на HTTPS кодом 308. Отключается полем `protection.https_redirect`.
- Сертификаты лежат на сервере в `/var/lib/nolay/caddy` и переживают переустановку агента.
- Let's Encrypt ограничивает число неудачных попыток на домен в час. Если сертификат не выпустился, сначала исправьте DNS, потом сохраняйте снова.

## Проверить

```sh
curl -I https://app.example.com
```

В ответе строка `HTTP/2 200` или код вашего приложения. Журнал выпуска сертификата на сервере:

```sh
docker logs nolay-caddy --tail 50
```

Успешный выпуск это строка `certificate obtained successfully`.

## Если не получилось

| Что видно | Почему | Что сделать |
|---|---|---|
| Статус «Работает, но недоступен снаружи» | DNS ещё не указывает на сервер или закрыты 80 и 443 | Проверьте `dig` и файрвол хостинга |
| В браузере ошибка сертификата | Сертификат ещё не выпущен | Смотрите `docker logs nolay-caddy`, частая причина это DNS |
| Проекты с доменами в ошибке | Порты 80 и 443 занял другой процесс | `ss -lptn 'sport = :80 or sport = :443'`, освободите порты |

## Что дальше

Задайте [секреты](/guides/secrets/) и настройте защиту домена полями [`[protection]`](/reference/nolay-toml/#field-protection).
