DinD HostingПосібник
ENУК
РОЗДІЛ 11

Домени та TLS

Ваш сайт доступний одразу після розгортання — за автоматичним іменем і з сертифікатом, — а ще ви можете підключати власні домени. Перш ніж просити в CA сертифікат, платформа перевіряє, що ім'я справді веде до неї.

Два типи доменів#

авто власний
Ім'я <slug>.<alias>.<base_domain> будь-яке, яке ви додасте, наприклад www.mysite.org
Створюється разом із проєктом через Додати власний домен
Можна видалити ні (видаляється разом із проєктом) Видалити
Кнопка перевірки немає (запускається сама) Повторити перевірку

Ім'я належить рівно одному проєкту

Ім'я хоста можна прикріпити лише до одного проєкту в усій платформі. Імена зберігаються в нижньому регістрі без зайвих пробілів, тож Shop.Example.com і shop.example.com — це те саме ім'я. Спроба додати ім'я, яке вже має будь-який проєкт (ваш чи чужий), завершується відмовою з кодом 409.

Додавання власного домену#

  1. Спрямуйте DNS на платформу. Створіть для імені запис A, що вказує на публічну адресу вхідного шлюзу (ingress) платформи (її підкаже адміністратор).
  2. Додайте домен. На вкладці Домени проєкту введіть ім'я в поле custom.example.com і натисніть Додати власний домен — або викличте add_domain / POST /projects/{id}/domains.
  3. Стежте за перевіркою. Вона запускається негайно. Коли з'явиться пройдено, маршрут записано й запитано сертифікат.
  4. За потреби виправте й повторіть. Після зміни DNS натисніть Повторити перевірку.
hosting.example.com/projects/7
Домени
Вкладка «Домени». (1) автоматичний домен, (2) власний домен, DNS якого ще не налаштовано належним чином, (3) повторна перевірка, коли все готово, (4) додати ще один.

Перевірка#

Перш ніж запитувати будь-який сертифікат, платформа доводить, що ім'я веде назад до неї самої. Тому помилковий DNS-запис або «двійник» перед платформою ніколи не призведе до вичерпання ліміту ACME.

ManagementDNSTraefik (LB)ACME CAрезолв A/AAAA доменумає резолвитись — у prod має збігатися з lb_public_ipIP-адреса(и)GET http://domain/.well-known/platform/precheckвиходить через хост → публічний IP → ingress → :80 → Traefik200 {“platform_id”: …}маршрут-маркер веде назад до managementplatform_id наш? → перевірку пройденолише тоді створюється файл маршруту з TLSзапис <project>--<hash>.yaml (TLS увімкнено)Traefik гаряче перезавантажує провайдер файліввиклик ACME HTTP-01сертифікат видано, поновлюється автоматично123456
Послідовність перевірки й видачі сертифіката. Кроки 1–4 — це перевірка; 5–6 виконуються, лише якщо вона пройдена.
  1. DNS. Ім'я має резолвитися. Якщо адміністратор задав публічну адресу платформи (lb_public_ip), запис має їй дорівнювати; якщо ні, достатньо, щоб ім'я резолвилося.
  2. Маршрутизація. Платформа надсилає запит http://<domain>/.well-known/platform/precheck реальним шляхом — вихід із хоста, ваша публічна адреса, вхідний шлюз (ingress), Traefik. Відповідь має містити власний platform_id платформи.

Лише після цього з'являється файл маршруту й вмикається TLS.

Стани#

статус перевіркиочікуєщойно доданопройденоDNS і маркер у норміпомилка DNSнемає A-запису або хибний IPпомилка маршрутизаціїмаркер не досягнутовиправте DNS чи ingress і натисніть «Повторити перевірку»статус сертифікатанемаємаршруту ще немаєочікуєтриває викликвиданоHTTPS працюєпомилкаповторює watchdogФайл маршруту створюється лише після успішної перевірки.Watchdog (кожні 5 хв) перевіряє маршрути, сертифікатиі строк дії (< 14 днів), повторює невдалі перевірки.
Дві колонки статусу на вкладці «Домени».
Перевірка Що це означає Що робити
очікує додано, ще не перевірено зачекайте кілька секунд
пройдено DNS і маршрутизація в порядку нічого
помилка DNS ім'я не резолвиться або веде не на адресу платформи виправте запис A, дочекайтеся поширення DNS і повторіть перевірку
помилка маршрутизації DNS у порядку, але маркер не повернувся перевірте, що вхідний шлюз (ingress) пересилає порти 80 і 443 на платформу
Сертифікат Що це означає
немає маршруту ще немає (перевірку не пройдено)
очікує триває виклик (challenge) від CA
видано HTTPS працює
помилка видача не вдалася; сторожовий процес повторює спробу й показує причину

Сторожовий процес (watchdog) запускається кожні п'ять хвилин: він перевіряє файл маршруту й маршрутизатор, стежить, щоб сертифікати були на місці й не втрачали чинності протягом 14 днів, і повторно запускає невдалі перевірки. Саме поновлення — завдання Traefik, воно відбувається автоматично.

Сертифікати: dev або production#

Платформа працює в одному з двох режимів TLS, який обирає адміністратор:

  • dev — локальний центр сертифікації підписує окремий кінцевий сертифікат для кожного домену. Браузери попереджатимуть, доки ви не імпортуєте CA (data/platform/traefik/certs/dev/ca.crt); DNS імітується, перевірка маршрутизації — справжня. Режим призначений для тестування без публічного DNS і лімітів CA.
  • prod — сертифікати від CA з ACME (типово Let's Encrypt; можна обрати ZeroSSL, Google Public CA або власний сервер) через виклик HTTP-01. Для цього порт 80 має бути доступний платформі, а контактна пошта — справжньою. Wildcard-сертифікати не видаються.

Як адміністратор обирає CA, див. розділ Адміністрування.

HTTP і HTTPS#

Щойно домен отримає сертифікат, звичайні HTTP-запити перенаправляються на HTTPS. Ваш застосунок від платформи бачить лише звичайний HTTP — див. Запуск застосунку.

Налагодження невдалої перевірки

dns_failed → перевірте dig +short your.domain ззовні. routing_failed → звідти ж curl -i http://your.domain/.well-known/platform/precheck має повернути 200 і тіло JSON із platform_id.