Postfix, vários domínios e vários certificados em um IP

Postfix, vários domínios e vários certificados em um IP

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 -Fa 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

informação relacionada