Módulo 5 · 5.2
CAA: quem pode emitir certificados?
Módulo 5: Outros registos · Tempo de leitura: 6 minutos
Objetivo de aprendizagem: No final desta lição, saberá ler um registo CAA e saberá como um registo CAA pode bloquear o pedido de um certificado SSL.
Conceitos-chave: CAA, issue, issuewild, iodef, autoridade de certificação (CA), nenhum registo CAA significa: todos podem
Um cadeado de um desconhecido
Um certificado SSL (na verdade um certificado TLS) é responsável pelo cadeado no navegador. É emitido por uma autoridade de certificação, abreviadamente CA: por exemplo, Let's Encrypt, Sectigo, DigiCert ou Google Trust Services. Existem dezenas de CAs em que os navegadores confiam e, em princípio, qualquer uma delas pode emitir um certificado para o seu domínio, desde que o requerente demonstre que gere o domínio.
Com um registo CAA (Certification Authority Authorization, RFC 8659), pode limitar isso. Indica na DNS quais as CAs que podem emitir certificados para o seu domínio. Cada CA é obrigada a verificar esse registo antes de emitir um certificado. Se a CA não constar do registo, tem de recusar.
Isto protege contra um certificado emitido em seu nome por uma CA descuidada ou enganada. É um cadeado extra, não uma obrigação.
Como é um registo CAA
example.com. 3600 IN CAA 0 issue "letsencrypt.org"
example.com. 3600 IN CAA 0 issue "sectigo.com"
example.com. 3600 IN CAA 0 iodef "mailto:beveiliging@example.com"Um registo CAA tem três partes:
| Parte | Exemplo | Significado |
|---|---|---|
| Flag | 0 | Quase sempre 0. Um 128 significa: "se não compreender esta regra, não emita nada". |
| Tag | issue | Que tipo de regra é (ver abaixo). |
| Valor | "letsencrypt.org" | A CA, identificada pelo seu próprio nome de domínio. Entre aspas. |
As três tags que vai encontrar:
issue: esta CA pode emitir certificados normais (paraexample.com,www.example.com, etc.).issuewild: esta CA pode emitir certificados wildcard (*.example.com). Se não existirissuewild, aplicam-se as regras deissueaos wildcards.iodef: indica para onde uma CA pode enviar uma notificação caso alguém peça um certificado que, segundo o seu CAA, não é permitido.
Pode ter várias regras issue: cada CA mencionada fica autorizada. Se quiser que ninguém emita um determinado tipo de certificado, utilize um valor vazio: 0 issuewild ";" significa "ninguém pode emitir wildcards".
Sem registo CAA: todos podem
Se o seu domínio não tiver um registo CAA, qualquer CA pode emitir um certificado. Essa é a situação normal para a maioria dos domínios e não está errada. O CAA é uma opção.
Uma CA procura o registo CAA no nome exato do certificado. Se não encontrar nada, procura um nível acima, até chegar ao domínio. Um registo CAA em example.com aplica-se, portanto, também a shop.example.com, a menos que shop.example.com tenha o seu próprio registo CAA.
Como o CAA pode bloquear o seu certificado
É por isso que o CAA tem lugar num curso para principiantes: um registo CAA pode fazer com que o seu certificado gratuito deixe de ser renovado, e a mensagem de erro nem sempre é clara.
Imagine: o seu website funcionou durante anos com um certificado de uma CA paga. Alguém criou, na altura, um registo CAA:
example.com. CAA 0 issue "sectigo.com"Agora muda para um alojamento que pede automaticamente certificados Let's Encrypt. O Let's Encrypt verifica o CAA, vê que apenas a Sectigo está autorizada e recusa. O seu site não recebe certificado e os visitantes veem um aviso.
A solução: adicione a CA que utiliza atualmente ou remova o registo CAA antigo se já não precisar dele.
example.com. CAA 0 issue "sectigo.com"
example.com. CAA 0 issue "letsencrypt.org"Se utilizar um serviço que trata dos certificados automaticamente, como uma plataforma de loja online ou uma CDN, pergunte que CA utiliza e adicione-a. Caso contrário, também vai bloquear o certificado desse serviço.
Na prática: como se apresenta num painel
Como exemplo, usamos o ecrã de DNS do O meu WebOké, que tem um assistente de CAA com as CAs mais conhecidas. No DirectAdmin, no Cloudflare e na maioria dos outros painéis, preenche os mesmos três campos: flag, tag e valor.
- Clique em Adicionar registro e escolha CAA.
- Deixe o nome no próprio domínio (
@). - Deixe a flag em
0. - Escolha a tag
issue. - Indique a CA, por exemplo
letsencrypt.org. - Guarde e repita para cada CA que deva poder emitir.
Resumo
- Com um registo CAA, determina quais as autoridades de certificação que podem emitir certificados para o seu domínio.
issueé para certificados normais,issuewildpara wildcards,iodefpara notificações.- Sem registo CAA, qualquer CA pode emitir. Isso é normal.
- Um registo CAA no domínio aplica-se também a subdomínios sem CAA próprio.
- Um registo CAA esquecido pode bloquear um certificado novo ou renovado. Adicione a CA que utiliza atualmente.
Quiz
Exercício
Exercício Z5.2: Consultar o CAA. Consulte os registos CAA de wikipedia.org. Que autoridades de certificação podem emitir certificados segundo as regras issue? Indique todas.
Exercício O5.2: Configurar na sua zona de treino. Crie, na sua zona de treino, no nome da própria zona (@), dois registos CAA:
0 issue ";"0 iodef "mailto:abuse@dnspractice.eu"
A primeira regra significa: ninguém pode emitir certificados para este nome. Na zona de treino isso é exatamente correto: não existe nenhum website real a funcionar, por isso também não deve existir nenhum certificado, e assim ninguém pode usar indevidamente a zona de treino para obter um certificado. No seu domínio real, nunca faça isto se utilizar https; aí deve indicar as CAs que efetivamente utiliza, como 0 issue "letsencrypt.org". A regra iodef, na zona de treino, aponta para o endereço de notificação do ambiente de treino; no seu domínio real, indique o seu próprio endereço.
Depois, clique em Verificar.
Exercício O5.2
Este exercício é feito na sua própria zona de treino: uma zona DNS real nos servidores de nomes da WebOké, só para si. Registe-se com o seu endereço de email. Recebe uma ligação de acesso por email e, de seguida, volta a esta lição. Utilizamos o seu endereço apenas para a finalidade do curso.
Para saber mais
Estes artigos descrevem os passos nos painéis da WebOké; noutros painéis, funcionam de forma semelhante.
