Como resolver erro de certificado ao configurar SMTP do Gmail no n8n (Windows)
Se você está começando a estudar n8n no Windows e tentou configurar o node Send Email usando Gmail SMTP, provavelmente já se deparou com um erro parecido com este:
“self-signed certificate in certificate chain”
ou
“Couldn’t connect with these settings”
O mais frustrante é que, mesmo com usuário, senha, porta e SSL corretos, a conexão simplesmente não funciona.
Neste artigo, vou explicar por que isso acontece e como resolver, de forma simples e prática, especialmente para quem está aprendendo.
O cenário
Você tem algo assim:
- n8n rodando localmente no Windows
- Node Send Email configurado com:
smtp.gmail.com- Porta
465 - SSL/TLS ativado
- Conta Gmail com 2FA e senha de aplicativo
Tudo certo… mas o erro continua.
Por que esse erro acontece?
Em muitos ambientes Windows, antivírus como Avast (e outros semelhantes) fazem algo chamado inspeção de conexões TLS/SSL.
Na prática, o fluxo fica assim:
n8n → Node.js → Antivírus (inspeção TLS) → Gmail SMTP
Durante essa inspeção, o antivírus intercepta a conexão segura e injeta um certificado próprio (self-signed).
O problema é que o Node.js, por padrão, não aceita certificados interceptados, e bloqueia a conexão antes mesmo do SMTP autenticar.
⚠️ Importante:
Esse não é um erro do Gmail e não é um erro do n8n.
Pré-requisitos (confirme antes de continuar)
Antes de aplicar qualquer solução, confirme que você já tem:
- ✅ Conta Gmail com verificação em duas etapas (2FA)
- ✅ Senha de aplicativo criada no Google
- ✅ SMTP configurado assim:
- Host:
smtp.gmail.com - Porta:
465 - SSL/TLS: ativado
- Usuário: seu e-mail Gmail
- Senha: senha de app (não a senha normal)
Se isso estiver certo, o problema é TLS, não credencial.
Solução para ambiente de estudo (Windows)
Para ambientes de aprendizado e laboratório, a solução mais simples é instruir o Node.js a aceitar certificados self-signed.
Passo a passo no PowerShell
- Abra um novo PowerShell
- Execute exatamente nesta ordem:
$env:NODE_TLS_REJECT_UNAUTHORIZED="0"
n8n
- Aguarde o n8n iniciar
- Volte ao node Send Email e clique em Retry
Resultado esperado
- ✅ Teste de SMTP funcionando
- ✅ E-mails enviados com sucesso
Por que isso funciona?
A variável de ambiente:
NODE_TLS_REJECT_UNAUTHORIZED=0
instrui o Node.js a:
- não bloquear certificados self-signed
- aceitar a cadeia TLS interceptada pelo antivírus
📌 Um detalhe importante (e comum de errar):
Essa variável precisa ser definida no mesmo processo que inicia o n8n.
Definir em outro terminal ou depois que o n8n já está rodando não funciona.
Atenção: isso é para estudo, não produção
Essa abordagem é válida para aprendizado, mas não é recomendada para produção, porque:
- desativa a validação TLS do processo
- reduz o nível de segurança das conexões
Em projetos reais, prefira:
- ✅ Gmail via OAuth2 (node Gmail do n8n)
- ✅ Ambientes sem inspeção SSL
- ❌ Evitar desativar validação TLS globalmente
Erros comuns que não resolvem
❌ Criar exceção HTTP/HTTPS no antivírus (SMTP não é HTTP)
❌ Trocar porta 465 por 587 sem entender o contexto
❌ Recriar senha de app várias vezes
❌ Achar que o problema é o Gmail ou o n8n
Conclusão
Se você está estudando n8n no Windows e usa Gmail SMTP, esse erro é mais comum do que parece — especialmente em máquinas com antivírus que inspecionam TLS.
Entender esse comportamento faz parte do aprendizado em automação.
Resolver o problema permite seguir em frente sem ficar travado em configuração de infraestrutura.
Em projetos reais, prefira OAuth2.
Em estudos, entender o “porquê” vale mais do que apenas o “como”.

