Hostim Docs

Домены и SSL

Домены есть только у сервисов, которые принимают трафик из интернета: «Сервер с HTTP» и «Статический сайт». Воркер домена не получает, см. типы сервисов.

Поддомен по умолчанию

При создании Web-сервиса вы выбираете имя, и сервис сразу получает адрес вида:

<имя>.apps.hostim.app

Сертификат TLS для него выпускается автоматически (Let's Encrypt) при первом успешном деплое, поэтому сервис доступен по HTTPS без каких-либо действий с вашей стороны.

Собственный домен

Чтобы сервис отвечал на вашем домене (например, example.com), нужно три шага, и порядок имеет значение: сначала DNS, потом добавление в панели.

Шаг 1. Настройте DNS

IP-адрес для записи показан в панели, в блоке доменов сервиса рядом с полем добавления. То есть его видно до того, как вы что-то добавите. Скопируйте адрес и создайте у своего DNS-провайдера A-запись на него: и для корневого домена (example.com), и для поддомена (app.example.com).

Для поддомена вместо A-записи подойдёт CNAME на адрес сервиса <имя>.apps.hostim.app, он ведёт на тот же входной узел. Для корневого домена CNAME не годится: большинство DNS-провайдеров его там не допускают.

Шаг 2. Дождитесь, пока запись обновится

Новая запись расходится по DNS не мгновенно: обычно это минуты, но зависит от TTL прежней записи у провайдера. Проверить можно с любой машины:

dig +short app.example.com
# или
nslookup app.example.com

В ответе должен быть тот же IP, что показан в панели. Пока его нет, переходить к шагу 3 смысла мало.

Шаг 3. Добавьте домен в сервисе

В блоке доменов сервиса введите домен и нажмите «Добавить домен». Платформа настроит маршрутизацию и запросит сертификат TLS. Отдельно покупать или загружать сертификат не нужно.

Если добавить домен раньше, чем обновится DNS, ничего непоправимого не произойдёт. Сертификат не выпустится, домен останется в статусе pending, а платформа будет периодически перепроверять его и переведёт в active, как только домен начнёт резолвиться на неё. Но ждать HTTPS придётся заметно дольше, чем при правильном порядке: центр сертификации после неудачной попытки выдерживает паузу.

Добавление домена перезапускает сервис

Добавление и удаление собственного домена применяются немедленно и перезапускают сервис. Это нужно, чтобы применить маршрутизацию и выпустить сертификат. На время перезапуска сервис недоступен, поэтому планируйте изменение домена на момент низкой нагрузки. Поддомена по умолчанию это не касается: он настраивается при первом деплое.

По той же причине управление доменами заблокировано в двух состояниях:

  • Сервис остановлен. Применить домен означает поднять сервис, а это отменило бы вашу же остановку. Сначала запустите сервис.
  • Идёт развёртывание. Дождитесь окончания сборки, иначе в очередь встала бы вторая сборка того же кода.

Статусы сертификата

  • pending: сертификат ещё не выпущен. Обычно означает, что DNS пока не указывает на платформу или запись не успела распространиться.
  • active: сертификат выпущен, домен работает по HTTPS.

Переход из pending в active происходит автоматически: платформа периодически перепроверяет домены в ожидании.

Частые ошибки

СимптомПричинаРешение
Сертификат долго висит в pendingDNS не указывает на платформу или ещё не распространилсяПроверьте запись через dig; когда домен начнёт резолвиться на нужный IP, статус сменится сам
«Домен занят» при выборе поддоменаИмя уже используетсяВыберите другое имя
Кнопка «Добавить домен» недоступнаСервис остановлен или идёт развёртываниеЗапустите сервис либо дождитесь окончания сборки
У воркера нет поля доменаДомен есть только у сервисов, доступных снаружиДля внешнего доступа используйте «Сервер с HTTP» или «Статический сайт»

Дальше