Neste tutorial, você aprenderá como instalar um certificado SSL/TLS no Postfix, o popular agente de transferência de e-mail do Linux.
Também gravamos um vídeo que mostra todo o processo passo a passo. Assista abaixo ou continue lendo a versão em texto.
Gerar um código CSR no Postfix
Se você já gerou o seu código CSR e precisa apenas das etapas de instalação, avance para Instalar um certificado SSL no Postfix.
Para obter um certificado SSL de uma CA (Autoridade Certificadora) confiável, você deve enviar um CSR (Certificate Signing Request). Um CSR é um bloco de texto codificado que contém seus dados de contato e informações da organização. Você tem duas opções:
- Use nosso Gerador de CSR para criar o CSR automaticamente.
- Siga nosso tutorial passo a passo sobre como gerar um CSR no Postfix.
Durante o processo de pedido com o seu fornecedor de SSL, abra o arquivo CSR em qualquer editor de texto simples e copie e cole o bloco inteiro, incluindo as linhas —–BEGIN CERTIFICATE REQUEST—– e —–END CERTIFICATE REQUEST—–, no campo correspondente. Assim que a CA validar sua solicitação e emitir o certificado, prossiga com a instalação abaixo.
Instalar um certificado SSL no Postfix
Depois que a CA validar sua solicitação e enviar os arquivos do certificado para a sua caixa de entrada, você pode iniciar a instalação.
Etapa 1: Prepare seus arquivos SSL
O Postfix usa certificados SSL/TLS no formato X.509. Uma instalação correta precisa de três arquivos:
- Sua chave privada, gerada junto com o CSR no seu servidor (por exemplo, privkey.key).
- Seu certificado SSL primário, o arquivo dentro do arquivo ZIP que a CA enviou por e-mail. Neste guia, vamos nos referir a ele como server.crt.
- O(s) certificado(s) intermediário(s), o pacote CA do mesmo arquivo ZIP. Vamos nos referir a ele como intermediate.pem.
Você pode manter os três arquivos em um único diretório, por exemplo /etc/postfix/. Certifique-se de que a chave privada seja legível apenas pelo root:
sudo chmod 600 /etc/postfix/privkey.key
Etapa 2: Monte a cadeia de certificados
A forma de montar os arquivos depende da sua versão do Postfix. Verifique primeiro:
postconf mail_version
Recomendado (Postfix 3.4 e mais recentes)
Crie um único arquivo de cadeia que contenha a chave privada, o certificado do servidor e o(s) intermediário(s), exatamente nesta ordem:
cat /path/to/privkey.key /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/rsachain.pem
Esse método moderno evita problemas de rotação de certificados e funciona perfeitamente com a diretiva smtpd_tls_chain_files do Postfix. Proteja o arquivo de cadeia da mesma forma que a chave, já que ele contém sua chave privada:
sudo chmod 600 /etc/postfix/rsachain.pem
Alternativa (todas as versões do Postfix)
Se você usa uma versão do Postfix anterior à 3.4, mantenha a chave separada e combine apenas o certificado do servidor com o(s) intermediário(s):
cat /path/to/server.crt /path/to/intermediate.pem > /etc/postfix/server.pem
Você fará referência a esse pacote e à chave privada separadamente na configuração abaixo.
Etapa 3: Configure o Postfix
Abra o arquivo de configuração principal /etc/postfix/main.cf e escolha o estilo que corresponde à sua configuração.
Opção A: Postfix 3.4 ou mais recente (recomendado). Aponte o Postfix para o único arquivo de cadeia que você criou:
smtpd_tls_chain_files = /etc/postfix/rsachain.pem
smtpd_tls_security_level = may
Opção B: legado (Postfix anterior à 3.4). Faça referência ao pacote de certificado e à chave separadamente:
smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = /etc/postfix/privkey.key
smtpd_tls_security_level = may
Algumas observações sobre essas diretivas:
- smtpd_tls_security_level = may ativa o TLS oportunista para e-mails recebidos na porta 25. Essa é a configuração correta para um servidor MX público: ele anuncia o STARTTLS para remetentes que o suportam, mas continua aceitando conexões simples daqueles que não suportam. Não defina como encrypt em um MX público, pois isso rejeitaria e-mails legítimos de remetentes que só usam conexões simples. (A antiga opção smtpd_use_tls = yes está obsoleta; smtpd_tls_security_level a substitui.)
- Use um certificado de cadeia completa (seu certificado mais os intermediários), seja através de smtpd_tls_chain_files (Opção A) ou smtpd_tls_cert_file (Opção B). Fornecer apenas o certificado folha causa falhas de validação da cadeia no lado receptor.
- O Postfix moderno já desativa o SSLv2, SSLv3 e cifras fracas por padrão, então você não precisa de listas de exclusão extras para o tráfego de entrada na porta 25.
Proteja o serviço de submissão (porta 587)
Quando seus próprios usuários enviam e-mails através do Postfix (via Outlook, Thunderbird, Apple Mail, entre outros), eles se conectam pela porta de submissão 587, e não pela porta 25, que é reservada para entrega servidor a servidor. Como apenas seus usuários autenticados usam essa porta, você pode aplicar regras mais rígidas com segurança: exigir TLS e definir um protocolo mínimo de TLS 1.2.
Abra /etc/postfix/master.cf, certifique-se de que o serviço submission esteja ativado e adicione as substituições abaixo:
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_mandatory_protocols=>=TLSv1.2
Alguns detalhes que costumam confundir:
- smtpd_tls_mandatory_protocols só tem efeito quando o nível de segurança é encrypt (TLS obrigatório), que é exatamente o caso aqui na porta 587. Para TLS oportunista na porta 25 (nível de segurança may), a opção equivalente seria smtpd_tls_protocols, mas em um MX público geralmente é melhor deixar essa opção com os padrões do Postfix para não rejeitar remetentes mais antigos.
- A sintaxe compacta >=TLSv1.2 exige o Postfix 3.6 ou mais recente e não deve haver espaço entre >= e a versão. No Postfix 3.4 ou 3.5, use a forma de exclusão: smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1.
- No master.cf, não há espaço em volta do = em uma substituição -o (por exemplo, -o smtpd_tls_security_level=encrypt), enquanto no main.cf você escreve chave = valor com espaços.
Opcional: TLS implícito na porta 465. Muitos clientes modernos preferem a porta 465 (SMTPS / “submissions”), que envolve toda a sessão em TLS desde o início. A RFC 8314 também endossa essa opção, junto com a 587. Para oferecê-la, ative o serviço smtps no master.cf com o modo wrapper:
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
Etapa 4: Recarregue o Postfix
Antes de recarregar, é uma boa prática verificar a configuração em busca de erros de sintaxe:
sudo postfix check
Se o comando não retornar nada, aplique as alterações. Um recarregamento relê a configuração sem interromper as conexões ativas:
sudo systemctl reload postfix
Em sistemas sem systemd, o comando equivalente é:
sudo postfix reload
Etapa 5: Verifique o certificado
Confirme que o Postfix está servindo o certificado e a cadeia corretos com o OpenSSL. Substitua yourdomain.com pelo nome do host do seu servidor de e-mail:
openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null
| openssl x509 -noout -issuer -subject -dates
A saída deve mostrar o titular do certificado do seu servidor, o emissor (a CA) e as datas de validade. Para testar o serviço de submissão, altere a porta para 587 (que também usa STARTTLS) ou, para a porta de TLS implícito 465, remova -starttls smtp e conecte-se diretamente à porta 465. Parabéns, você instalou com sucesso um certificado SSL no Postfix.
Teste sua instalação SSL
Depois de instalar o certificado, é aconselhável verificar sua configuração em busca de erros ou vulnerabilidades. Nosso SSL Checker fornece relatórios instantâneos sobre todos os aspectos do seu certificado e da sua configuração, para que você possa confirmar que a cadeia está completa e que os protocolos estão configurados corretamente.
Onde comprar o melhor certificado SSL para o Postfix?
Você chegou ao lugar certo. Na SSL Dragon, oferecemos uma das gamas mais amplas de produtos SSL a alguns dos preços mais baixos do mercado, e todos os nossos certificados são compatíveis com o agente de transferência de e-mail Postfix.
Não sabe qual certificado escolher? Nosso SSL Wizard torna rápido e fácil encontrar o produto certo para o seu servidor de e-mail.
Perguntas frequentes
O TLS é configurado em /etc/postfix/main.cf. No Postfix 3.4 e versões mais recentes, a diretiva recomendada é smtpd_tls_chain_files, que aponta para um único arquivo PEM contendo a chave privada, o certificado do servidor e os intermediários. Em versões mais antigas, você deve definir separadamente smtpd_tls_cert_file (um certificado de cadeia completa) e smtpd_tls_key_file (a chave privada). Substituições específicas de serviço para as portas 587 e 465 ficam em /etc/postfix/master.cf.
Para smtpd_tls_chain_files, a ordem é primeiro a chave privada, depois o certificado do servidor (folha) e, por fim, o(s) certificado(s) intermediário(s):cat privkey.key server.crt intermediate.pem > /etc/postfix/rsachain.pem
Se a ordem estiver errada, o Postfix não conseguirá carregar a cadeia. Não inclua o certificado da CA raiz; os clientes já confiam nele.
Use may (TLS oportunista) para e-mails recebidos na porta 25. Um MX público deve aceitar e-mails de remetentes que não suportam TLS, e encrypt os rejeitaria, causando perda de e-mails. Reserve encrypt (TLS obrigatório) para o serviço de submissão autenticado na porta 587, onde apenas seus próprios usuários se conectam.
Um recarregamento é suficiente para alterações de certificado e TLS; execute sudo systemctl reload postfix (ou sudo postfix reload). O recarregamento relê a configuração sem interromper as conexões ativas. Execute sudo postfix check primeiro para detectar erros de sintaxe antes que entrem em vigor.
Conecte-se com o OpenSSL e leia o certificado que o Postfix apresenta via STARTTLS:openssl s_client -starttls smtp -connect yourdomain.com:25 -servername yourdomain.com </dev/null | openssl x509 -noout -issuer -subject -dates
Isso exibe o titular, o emissor e as datas de validade do certificado. Você também pode executar uma verificação completa com nossas ferramentas SSL para confirmar que a cadeia está completa.
Conclusão
Instalar um certificado SSL no Postfix se resume a montar um arquivo PEM de cadeia completa, apontar o main.cf para ele com smtpd_tls_chain_files (ou o par legado smtpd_tls_cert_file / smtpd_tls_key_file), definir smtpd_tls_security_level = may para e-mails recebidos, reforçar a segurança do serviço de submissão na porta 587, verificar a configuração com sudo postfix check e recarregar o Postfix.
Precisa de um certificado primeiro? Explore nossos certificados SSL.
Economize 10% em certificados SSL ao fazer seu pedido hoje!
Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10


