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 :)

· Tags: , ,