Воспользуйтесь DNS-записью CAA, чтобы авторизовать CA для выдачи сертификатов TLS.
Содержание
1 Что такое DNS CAA?
CAA – это один из типов записей DNS, который сообщает CA, следует ли выдавать сертификат или нет.
Другими словами, вы даете миру знать, кто должен выдавать сертификат вашего домена SSL / TLS.
Внедрение CAA стало обязательным в конце 2017 года, поэтому оно относительно новое, и менее 5% популярных сайтов внедрили эту технологию.
Давайте рассмотрим пример – Geekflare владеет сайтом под названием «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 выдать сертификат только для этого домена.
- issewild – CA может выдать групповой сертификат, чтобы его можно было использовать в домене или поддомене.
Запись CAA также поддерживает iodef (формат обмена описанием объекта инцидента), который позволяет CA отправлять отчет о нарушении на указанный адрес электронной почты или контактную информацию.
2 Что происходит, когда запись CAA не найдена?
Если у домена нет записи CAA, тогда любой может сгенерировать CSR для этого домена и получить сертификат, подписанный любым CA.
Это угроза безопасности.
Теперь ясно?
Есть несколько сокращений, которые я использовал выше.
Давайте посмотрим, что они значат. ( на всякий )
- DNS – Domain name system
- CA – Certificate authority
- CAA – Certification authority authorization
- TLS – Transport layer security
- SSL – Secure socket layer
3 Как проверить запись DNS CAA?
Существует несколько способов проверки записи CAA.
Если вы не хотите покидать свой терминал, вы можете проверить это, используя команду dig:
dig caa $TVOISAIT.COM
Пример geekflare.com
# dig caa geekflare.com
; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa geekflare.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:
;geekflare.com. IN CAA
;; ANSWER SECTION:
geekflare.com. 3600 IN CAA 0 issuewild "comodoca.com"
geekflare.com. 3600 IN CAA 0 issuewild "letsencrypt.org"
geekflare.com. 3600 IN CAA 0 issue "comodoca.com"
geekflare.com. 3600 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes"
geekflare.com. 3600 IN CAA 0 issue "letsencrypt.org"
geekflare.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
Если вы хотите проверить это удаленно, то вы можете использовать онлайн-инструмент DNS CAA Tester.
4 Как добавить запись CAA?
Технически это происходит так же, как и при добавлении других записей DNS, таких как A, NS, CNAME и т. д.
Если вы используете Cloudflare, перейдите на вкладку DNS >> add a record и выберите тип CAA.
Для GoDaddy, перейдите в DNS Management и добавьте запись
Если вы не знаете, как добавить эту запись, вы всегда можете обратиться за помощью к своему провайдеру DNS / хостинга.
Заключение
Если вы еще не используете эту технологию, вы должны воспользоваться записью CAA, чтобы добавить уровень безопасности домена.
Добавление записи CAA не стоит вам ничего.