Central de Ajuda

Guia da Central de Ajuda

DKIM fail, bad signature ou body hash did not verify: como corrigir a assinatura DKIM

DKIM adiciona uma assinatura criptográfica aos cabeçalhos da mensagem. O destinatário consulta no DNS a chave pública indicada pelo domínio d= e pelo seletor s=. Resultados como dkim=fail, bad signature, no key for signature, body hash did not verify, permfail ou temperror mostram que a assinatura não pôde ser validada.

Como localizar os dados da assinatura

No cabeçalho original, procure:

DKIM-Signature: v=1; a=rsa-sha256; d=exemplo.com.br; s=default; ...
Authentication-Results: ... dkim=fail header.d=exemplo.com.br

A chave pública deve estar no nome default._domainkey.exemplo.com.br quando o seletor é default. Outros provedores usam seletores próprios.

Causas e sinais

Resultado/textoCausa provável
no key ou key not foundTXT ausente, seletor errado, publicação no DNS não autoritativo ou propagação.
bad signatureChave pública não corresponde à privada ou dados assinados foram alterados.
body hash did not verifyO corpo mudou depois da assinatura, inclusive por gateway, rodapé ou filtro.
permfailErro permanente de sintaxe, chave revogada/ausente ou assinatura inválida.
temperrorFalha temporária de consulta DNS ou serviço.
dkim=noneA mensagem não tinha assinatura reconhecida.

Procedimento de correção

  1. Obtenha o cabeçalho da mensagem original, não uma mensagem encaminhada ou copiada.
  2. Anote d=, s=, algoritmo e resultado em Authentication-Results.
  3. Consulte o TXT em seletor._domainkey.domínio no DNS autoritativo.
  4. Confirme que o registro não foi quebrado, duplicado ou publicado como CNAME quando o provedor exigia TXT — ou vice-versa.
  5. No cPanel, abra Capacidade de entrega de e-mail > Gerenciar e compare o DKIM recomendado.
  6. Se o DNS for externo, publique nele exatamente a chave recomendada; o botão de reparo local não altera a Cloudflare ou outro DNS autoritativo.
  7. Se houve migração, gere ou instale a chave correspondente ao servidor atual e remova referências antigas somente depois de validar o novo fluxo.
  8. Envie uma mensagem nova e confirme dkim=pass.

Quando o corpo é alterado após a assinatura

Gateways antispam, listas de discussão, sistemas que inserem avisos, antivírus, redirecionamentos e conversões de encoding podem modificar partes cobertas pela assinatura. Compare o percurso nas linhas Received. Assine no último componente controlado antes da saída; evite que outro sistema altere conteúdo depois disso. Encaminhar uma mensagem como anexo preserva melhor a evidência do que encaminhá-la normalmente.

Rotação e tamanho da chave

Uma rotação segura cria um seletor novo, publica a chave, espera o DNS ficar disponível, passa a assinar com o novo seletor e só então remove o antigo após o período de trânsito. Não publique a chave privada. Provedores atuais podem impor tamanhos mínimos; siga a recomendação do serviço de envio e prefira chaves modernas suportadas pelo ambiente.

DKIM passou, mas a mensagem foi rejeitada

DKIM válido não garante Caixa de Entrada. Verifique se o domínio d= alinha com o From para DMARC, além de SPF, PTR, reputação, conteúdo e consentimento. Consulte DMARC e alinhamento e entrega na pasta Spam.

Nunca envie a chave privada DKIM em um chamado. Para diagnóstico, bastam o seletor, domínio, TXT público, cabeçalho e horário.

Referências oficiais: RFC 6376 — DKIM, requisitos de remetentes do Gmail e cPanel — Email Deliverability.

Recursos relacionados

Continue com tutoriais, ferramentas e serviços relacionados ao diagnóstico.

dkim, bad-signature, dns, email-authentication, entregabilidade
Este guia resolveu sua dúvida? Seu retorno ajuda a priorizar as próximas revisões.
Atendimento técnico

Não encontrou o resultado esperado?

Abra um chamado e envie a mensagem de erro completa, o domínio ou serviço afetado, o horário do teste e capturas de tela sem senhas.