Создание и управление DNS-записями CAA

CAA (Certificate Authority Authorization) – это стандарт, который предотвращает создание неавторизованных сертификатов SSL/TLS. Записи CAA позволяют владельцам доменов указывать, какие центры сертификации (Certificate Authorities, CA) могут выдавать сертификаты.

Требования

Для работы вам понадобится зарегистрированное доменное имя. Полезные инструкции вы найдете в руководстве Как настроить имя хоста.

Краткий обзор записи CAA

CAA использует записи ресурсов системы доменных имен (Domain Name System, DNS).

Читайте также: Сравнение DNS-серверов: как выбрать правильную конфигурацию DNS

Как и другие записи DNS, CAA может применяться как ко всему домену (example.com), так и к определенному поддомену (beta.example.com). Срок действия записи определяется в секундах.

Кроме этих общих полей DNS записи CAA используют три специальных поля: tags, values и flags.

Поле tag

Поле tag — это строка ASCII. Стандарт CAA поддерживает три значения tag:

  1. issue разрешает одному ЦС выдавать сертификаты любого типа для определенного домена. Чтобы разрешить несколько таких центров сертификации, нужно создать индивидуальную запись для каждого из них.
  2. issuewild разрешает одному ЦС выдавать только wildcard сертификаты для указанного домена. Опять же, чтобы разрешить несколько ЦС, нужно создать индивидуальную запись для каждого из них.
  3. iodef определяет URL-адрес, по которому центр сертификации может сообщать о нарушении правил. Если вы хотите указать несколько таких адресов, каждому URL-адресу потребуется собственная запись.

Кроме того, стандарт CAA позволяет центрам сертификации определять собственные значения tag. Каждая запись CAA может иметь только одно значение tag.

Поле value

Значение в поле value зависит от значения поля tag.

Если в поле tag указано значение issue или issuewild, в value указывается домен центра сертификации, который получает разрешение на выдачу сертификатов (например, letsencrypt.org).

Если в поле tag указано значение iodef, в поле value нужно указать URL или почтовый адрес, по которому ЦС может сообщить о нарушениях (например, user@8host.com).

Примечание: Стандарт CAA поддерживает:

  • Блокирование выдачи любых сертификатов. Для этого в value нужно поставить точку с запятой (;).
  • Теги «имя-значение» после имени ЦС, например: letsencrypt.org; abc=cde

На момент написания статьи не все провайдеры поддерживают эти функции.

Поле flag

Поле flag содержит беззнаковое целое между 0 и 255.

В настоящее время это поле используется для установки флага Issuer Critical, который определяет, как должен вести себя ЦС, когда он сталкивается с тегом, который он не понимает.

По умолчанию значение flag равно 0. При таком значении, если ЦС запрашивает DNS-запись для выдачи сертификата и находит тег, который он не понимает, он будет игнорировать эту запись и продолжать обрабатывать дополнительные записи.

Если поле flag любой из записей имеет значение 1 и ЦС не понимает значения тега этой записи, то отвечающий стандартам ЦС должен отказаться от выдачи сертификата.

Больше о записях CAA можно узнать в RFC 6844.

Создание записи CAA

Откройте панель управления вашего хостинг-провайдера. При создании новой записи для выбранного домена укажите CAA.

Создание записи с тегом issue

К примеру, чтобы центр сертификации Let’s Encrypt имел возможность выдавать сертификаты любому имени хоста в my-domain.certs, создайте такую запись:

HOSTNAME: введите @, чтобы применить запись ко всему домену.
AUTHORITY GRANTED FOR: Укажите домен центра сертификации. В данном случае это letsencrypt.org.
TAG: Чтобы сервис Let's Encrypt мог генерировать любые сертификаты, выберите значение issue.
FLAGS: можно оставить значение по умолчанию, 0.
TTL (SECONDS): срок действия записи в секундах. Можно оставить значение по умолчанию, 3600.

Затем можно принять запись. После этого в списке DNS-записей появится новая запись CAA.

Позже в запись можно добавить новые теги.

Если вы хотите разрешить другому ЦС предоставлять сертификаты, нужно будет добавить новую запись.

Создание записи с тегом issuewild

При отсутствии записи issuewild любой ЦС сможет выдавать wildcard-сертификаты. В этом примере вы узнаете, как добавить запись, которая позволит центру сертификации Comodo выдавать только wildcard-сертификаты.

HOSTNAME: введите @, чтобы применить запись к домену my-domain.certs.
AUTHORITY GRANTED FOR: Укажите домен центра сертификации. В данном случае это comodoca.org.
TAG: выберите значение issuewild.
FLAGS: можно оставить значение по умолчанию, 0.
TTL (SECONDS): срок действия записи в секундах. Можно оставить значение по умолчанию, 3600.

Примечание: Вместо условного домена my-domain.certs укажите свое доменное имя.

После добавления записи для Comodo ни один другой ЦС не сможет выдать wildcard-сертификаты. Чтобы дать такое право другому ЦС, создайте для него отдельную запись.

Создание записи с тегом iodef

Теперь попробуйте добавить запись с тегом iodef. Такая запись позволит центру сертификации связаться с вами в случае каких-либо нарушений.

HOSTNAME: введите @, чтобы применить запись к домену my-domain.certs.
AUTHORITY GRANTED FOR: Укажите адрес электронной почты, по которому с вами можно связаться, например mailto:caapolicy@my-domain.certs
TAG: выберите значение iodef.
FLAGS: можно оставить значение по умолчанию, 0.
TTL (SECONDS): срок действия записи в секундах. Можно оставить значение по умолчанию, 3600.

Если ЦС обнаружит нарушения политики сертификатов, эта запись позволит ему связаться с вами.

Управление записями CAA

Больше информации о записях можно найти в разделе настроек DNS в панели управления.

Изменения будут немедленно отражены в панели управления. Как скоро изменения будут распространяться на DNS-серверы, определяет значение TTL.

Запрос DNS-записей

Здесь вы узнаете, как проверить правильность новых записей. Обратите внимание, что более старые версии обычных инструментов DNS (такие как dig) по умолчанию не возвращают записи CAA. Если вы хотите запросить свои записи с помощью инструмента командной строки, скорее всего, необходимо обновить инструмент.

Используйте сервис Google Public DNS service, чтобы проверить записи. Для этого укажите свой домен (например, my-domain.certs) и введите САА в поле RR Type и нажмите Resolve.

В результате в поле answer должны появиться ваши записи CAA.

Заключение

Теперь вы знаете, что такое записи САА, зачем они нужны, как их создавать и управлять ими.

Читайте также:

Tags: ,