Eu tenho um servidor postfix que possui vários domínios e quero ter um certificado específico para cada um. Meu servidor tem apenas um IP.
Encontrei uma solução com multi IP, mas sem não sei como fazer isso.
- Servidor: Debian 9
- Pós-fixo: 3.1.8
Responder1
Até onde eu sei, não há SNI funcionando no postfix. Ainda. Documentos (http://www.postfix.org/TLS_README.html) dizem que "Não há planos para implementar SNI no servidor Postfix SMTP.", embora Victor tenha mencionado em janeiro que deseja adicionar suporte SNI ao postfix 3.4. Alternativas:
- IP múltiplo
- certificado contendo todos os nomes de domínio.
Além disso, não há nada de errado em ter o mesmo MX para todos os domínios. O nome do host MX é seu domínio de serviço ou algo assim. Também o nome helo/ehlo configurado para o mesmo/similar hostname . Se for bom para o GoogleApps e outros grandes provedores de e-mail, também será bom para nós.
Responder2
Se você estiver no Postfix >=3.4, considere as seguintes etapas abaixo conforme adaptadasdeste link:
Passo 1: Comente as duas linhas superiores e adicione as seguintes linhas ao /etc/postfix/main.cf:
# smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
# smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
# provide the primary certificate for the server, to be used for outgoing connections (note the indentation)
smtpd_tls_chain_files =
/etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem,
/etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
# provide the map to be used when SNI support is enabled
tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map
Passo 2: Crie o arquivo /etc/postfix/vmail_ssl.map com o seguinte:
# Compile with postmap -F hash:/etc/postfix/vmail_ssl.map when updating
# One host per line
mail.yourprimarymailserverdomain.com /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
mail.yoursecondarymailserverdomain.com /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/fullchain.pem
# add more domains with keys and certs as needed
etapa 3: Correr postmap -F hash:/etc/postfix/vmail_ssl.map
.
Passo 4: Correr systemctl restart postfix
.
Etapa 5: Agora teste os SSLs dos seus domínios! Para cada um dos seus domínios, execute o seguinte comando:openssl s_client -connect localhost:25 -servername mail.mydomainname.com -starttls smtp
Responder3
Para quem não sabe, a tabela SNI precisa ser reconstruída cada vez que um certificado muda, pois a tabela subjacente é gerada com postmap -F
a qual importa o arquivocontente(ele não armazena apenas referências aos nomes dos arquivos).
postmap -F hash:/etc/postfix/tls_server_sni_maps.map
Responder4
A versão 3.4 do Postfix agora suporta SNI e, portanto, está disponível no Ubuntu 19.10, por exemplo.
Além disso, há um bom motivo para querer isso - clientes como o Outlook tentam a configuração automática usando um nome de servidor que corresponda ao nome de domínio do e-mail. Se a sua conta de e-mail estiver no Gmail ou em outro domínio compartilhado, isso não é um problema, mas um domínio pessoal hospedado em um servidor (mesmo um VPS) com vários domínios precisa de uma solução como esta