Домены
Домены - основной объект в системе для управления услугой CDN для сайтов.
Управление доменами
Статусы домена
Для определения текущего состояния домена используется поле status объекта (domain.status).
Возможные значения:
OK(CDN для домена включен)DISABLED(CDN для домена выключен)BLOCKED(домена заблокирован)CHECKING_NS_LIST(проводится проверка делегации домена)DOMAIN_NOT_DELEGATED(домен не делегирован)CREATING_SSL_CERT(выпускается сертификат для домена)SSL_CERT_CREATING_ERROR(ошибка выпуска сертификата для домена)UPDATING_DNS_RECORDS(проводится обновление записей на PDNS)UPDATING_DNS_RECORDS_ERROR(ошибка обновления записей на PDNS)
Создание домена
Создание домена происходит синхронно, в системе создается объект domain.
Сразу после создания домена услуга CDN неактивна. Статус домена - DISABLED.
Для каждого домена генерируется поле cdn_domain. Это доменное имя, с которого будет раздаваться статический контент из кэширующих серверов.
Если тип создаваемого домена cname, то для объекта также генерируется и заполняется поле cname_url.
Это доменное имя, которое при необходимости можно указать в качестве контента в CNAME запись в DNS клиента.
Обновление домена
Обновление домена происходит синхронно, в системе обновляется объект domain.
Для изменений используются доступные поля соответствующего API метода.
Работа с TLS/SSL сертификатами
После создания домена пользователь может автоматически выпустить бесплатный сертификат от Let's Encrypt либо загрузить свой.
Для выпуска сертификата используется метод issue_cert. При этом создается задача с типом ISSUE_CERT.
Бесплатный сертификат будет обновляться автоматически каждые 60 дней. Автоматическое обновление можно отключить на уровне приложения.
Для загрузки пользовательского сертификата использовать метод upload_ssl_cert. Данный метод работает синхронно.
Допускается обновление/загрузка сертификата как при выключенной, так и при включенной услуге CDN.
Загрузка сертификата для доменов с типом delegated
При загрузке сертификата для домена типа delegated выполняется проверка того, что сертификат выпущен для доменного имени domain.name, указанного при создании объекта domain.
Поле API-метода domain_name в валидации не участвует.
Значение поля domain.cdn_domain для домена типа delegated всегда равно значению поля domain.name.
Пример использования:
- cоздать домен с именем "example.com" и типом
delegated - загрузить сертификат
- среди списка доменных имен загружаемого сертификата (Subject Alternative Name) обязательно должно быть "example.com" либо "*.example.com"
- включить CDN для домена
- после обновления кэша DNS-серверов шифрование запросов при обращении к "example.com" будет происходить с помощью загруженного сертификата
Загрузка сертификата для доменов с типом cname
Для загрузки сертификата для домена типа cname необходимо указать желаемое доменное имя в поле domain_name. Это доменное имя, при обращении к которому запросы будут проходить через серверы CDN. Оно не может совпадать с domain.name.
После успешной загрузки сертификата у объекта domain изменяется значение поля cdn_domain.
Пример использования:
- cоздать домен с именем "example.com" и типом
cname - для домена автоматически будет заполнено поле
cname_url, например, "d121.static-clients.arviol.com" - загрузить сертификат, указав в поле
domain_nameдоменное имя, с которого планируется раздача статики сайта, например, "cdn.example.com" - среди списка доменных имен загружаемого сертификата (Subject Alternative Name) обязательно должно быть "cdn.example.com" либо "*.example.com"
- после успешной загрузки сертификата у объекта
domainполеcdn_domainизменится на "cdn.example.com" - включить CDN для домена
- в настройках DNS-хостинга добавить CNAME-запись:
name="cdn.example.com",data="d121.static-clients.arviol.com" - после обновления кэша DNS-серверов запросы по домену "cdn.example.com" будут отправлены через серверы CDN