Что такое DNS CAA и как проверить и внедрить?

Воспользуйтесь записью DNS CAA, чтобы авторизовать CA для выпуска сертификатов TLS.

Что такое DNS CAA?

CAA — это один из типов записей DNS, который указывает CA, следует ли им выдавать сертификат или нет. Другими словами, вы сообщаете миру, кто должен выдавать ваш домен. SSL/TLS-сертификат. Внедрение CAA стало обязательным в конце 2017 года, так что это относительно новое явление, и его внедрили менее 5 % популярных сайтов.

Возьмем пример: toadmin.ru владеет сайтом под названием «gf.dev», который имеет следующую запись CAA.

gf.dev.			3586	IN	CAA	0 issue "digicert.com; cansignhttpexchanges=yes"
gf.dev.			3586	IN	CAA	0 issuewild "comodoca.com"
gf.dev.			3586	IN	CAA	0 issue "comodoca.com"
gf.dev.			3586	IN	CAA	0 issuewild "digicert.com; cansignhttpexchanges=yes"
gf.dev.			3586	IN	CAA	0 issuewild "letsencrypt.org"
gf.dev.			3586	IN	CAA	0 issue "letsencrypt.org"

Глядя на приведенные выше результаты, я могу получить сертификат, выданный только DigiCert, Comodo и Let’s encrypt. Если я попрошу Thawte или другой ЦС выдать сертификат для gf.dev, они не смогут этого сделать. Кроме того, если вы обратите внимание, вы заметите, что у некоторых записей есть проблема, а у некоторых есть проблема. Давайте узнаем, что они из себя представляют.

  • issue — указать CA выдать сертификат только для этого домена.
  • issuewild — CA может выдать групповой сертификат, чтобы его можно было использовать в домене или поддомене.

Запись CAA также поддерживает iodef (формат обмена описанием объекта инцидента), который позволяет CA отправлять отчет о нарушении на указанный адрес электронной почты или контактные данные.

Что происходит, когда запись CAA не найдена?

Если у домена нет записи CAA, любой может создать CSR для этого домена и получить сертификат, подписанный любым CA. Это угроза безопасности.

Так понятно?

Есть несколько сокращений, которые я использовал выше. Давайте проверим, что они из себя представляют.

  • DNS — система доменных имен
  • ЦС – Центр сертификации
  • CAA – Авторизация центра сертификации
  • TLS — безопасность транспортного уровня
  • SSL — безопасный уровень сокетов

Как проверить запись DNS CAA?

Существует несколько способов проверки записи CAA. Если вы не хотите покидать свой терминал, вы можете проверить это с помощью команды dig.

dig caa $YOURWEBSITE.COM

Пример toadmin.ru.com

[email protected]:~# dig caa toadmin.ru.com

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa toadmin.ru.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54430
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;toadmin.ru.com.			IN	CAA

;; ANSWER SECTION:
toadmin.ru.com.		3600	IN	CAA	0 issuewild "comodoca.com"
toadmin.ru.com.		3600	IN	CAA	0 issuewild "letsencrypt.org"
toadmin.ru.com.		3600	IN	CAA	0 issue "comodoca.com"
toadmin.ru.com.		3600	IN	CAA	0 issue "digicert.com; cansignhttpexchanges=yes"
toadmin.ru.com.		3600	IN	CAA	0 issue "letsencrypt.org"
toadmin.ru.com.		3600	IN	CAA	0 issuewild "digicert.com; cansignhttpexchanges=yes"

;; Query time: 7 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Oct 08 07:12:21 UTC 2019
;; MSG SIZE  rcvd: 298

[email protected]:~#

Если вы хотите протестировать это удаленно, вы можете использовать DNS CAA-тестер онлайн инструмент.

Как добавить запись CAA?

Технически это так же, как вы добавляете другие записи DNS, такие как A, NS, CNAME и т. д.

Если вы используете Cloudflare, перейдите на вкладку DNS >> добавьте запись и выберите тип CAA.

Для GoDaddy перейдите в раздел «Управление DNS» и добавьте запись.

Если вы не знаете, как это добавить, вы можете обратиться за помощью к своему поставщику услуг DNS/хостинга.

Вывод

Если это еще не сделано, вам следует воспользоваться записью CAA, чтобы добавить уровень безопасности домена. Добавление записи CAA бесплатно.

Понравилось читать статью? Как насчет того, чтобы поделиться с миром?