Postfix TLS con múltiples certificados
Cuando hablamos de TLS o SSL siempre nos encontramos con el mismo problema, el certificado. Este debe ser único por puerto e IP, de forma que dependiendo de a donde se conecte el cliente le entregamos un certificado u otro acorde a su dominio. Esto es algo con lo que tenemos que pelear constantemente en Apache, creando un VirtualHost por cada IP y asignándole un certificado.
Postfix no se libra y también necesitamos una IP por certificado, de forma que a cada cliente le muestre el certificado de su dominio y nos evitemos los famosos warning. Para hacerlo en primer lugar es necesario tener una IP por cada dominio. Una vez completado ese simple requisito pasamos a configurar Postfix. Primero ponemos TLS a nivel global en Postfix dentro del main.cf:
#TLS smtpd_use_tls = yes smtpd_tls_key_file = /etc/ssl/dominio1.com.key smtpd_tls_cert_file = /etc/ssl/dominio1.com.crt smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
Ahora tenemos que hacer que Postfix arranque un proceso smtpd por cada una de las IPs/Dominios. Esto lo hacemos en el master.cf. Al mismo tiempo que indicamos la IP, también le indicamos el certificado que usará:
#========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) #========================================================================== 10.10.10.1:smtp inet n - - - - smtpd 127.0.0.1:smtp inet n - - - - smtpd 10.10.20.1:smtp inet n - - - - smtpd -o smtpd_tls_cert_file=/etc/ssl/dominio2.com.crt 10.10.30.1:smtp inet n - - - - smtpd -o smtpd_tls_cert_file=/etc/ssl/dominio3.com.crt 10.10.40.1:smtp inet n - - - - smtpd -o smtpd_tls_cert_file=/etc/ssl/dominio4.com.crt
Listo, en cada IP entregará un certificado :)



