Tengo un servidor Postfix que tiene múltiples dominios y quiero tener un certificado específico para cada uno. Mi servidor tiene una sola IP.
Encontré una solución con IP múltiple, pero sin ella no sé cómo hacerlo.
- Servidor: Debian9
- Sufijo: 3.1.8
Respuesta1
Hasta donde yo sé, no hay ningún SNI que funcione en postfix. Todavía. Documentos (http://www.postfix.org/TLS_README.html) dicen que "No hay planes para implementar SNI en el servidor SMTP de Postfix", aunque Victor mencionó en enero que quiere agregar soporte SNI a postfix 3.4. Alternativas:
- IP múltiple
- certificado que contiene todos los nombres de dominio.
Además, no hay nada de malo en tener el mismo MX para todos los dominios. El nombre de host MX es su dominio de servicio o algo así. También el nombre helo/ehlo configurado con el mismo nombre de host o similar. Si es bueno para GoogleApps y otros importantes proveedores de correo electrónico, también lo es para nosotros.
Respuesta2
Si está en Postfix >=3.4, considere los siguientes pasos a continuación adaptadosdesde este enlace:
Paso 1: Comente las dos líneas superiores y agregue las siguientes líneas a /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
Paso 2: Cree el archivo /etc/postfix/vmail_ssl.map con lo siguiente:
# 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
Paso 3: Correr postmap -F hash:/etc/postfix/vmail_ssl.map
.
Etapa 4: Correr systemctl restart postfix
.
Paso 5: ¡Ahora prueba los SSL de tus dominios! Para cada uno de sus dominios, ejecute el siguiente comando:openssl s_client -connect localhost:25 -servername mail.mydomainname.com -starttls smtp
Respuesta3
Para aquellos que no lo saben, la tabla SNI debe reconstruirse cada vez que cambia un certificado, ya que se genera la tabla subyacente con postmap -F
la que se importa el archivo.contenido(no sólo almacena referencias a los nombres de los archivos).
postmap -F hash:/etc/postfix/tls_server_sni_maps.map
Respuesta4
La versión 3.4 de Postfix ahora es compatible con SNI y, por lo tanto, está disponible en Ubuntu 19.10, por ejemplo.
Además, HAY una buena razón para querer esto: clientes como Outlook intentan la configuración automática utilizando un nombre de servidor que coincida con el nombre de dominio de correo electrónico. Si tu cuenta de correo está en Gmail u otro dominio compartido esto no es un problema, pero un dominio personal alojado en un servidor (incluso un VPS) con múltiples dominios necesita una solución como esta