Servidor de correo · 4 min read · Sep 08, 2025
Asegurando tu servidor de correo gestionado por ISPConfig 3 con un certificado SSL válido de Let's Encrypt

Si estás ejecutando tu propio servidor de correo, es una buena práctica conectarte a él de forma segura con una conexión SSL/TLS. Necesitarás un certificado válido para estas conexiones seguras. En este tutorial, configuraremos un certificado de Let’s Encrypt para nuestro servidor de correo que se renueva automáticamente.
Advertencia: Este tutorial se basa en este tutorial: https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ pero modificado para que tengas un certificado separado para tu servidor de correo y el panel de control. Si has seguido ese tutorial antes, este tutorial podría romper tu configuración.
Este tutorial utiliza certificados emitidos por acme.sh. Si estás usando certbot, sigue este tutorial en su lugar: https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate-certbot.86372/
Nota para ISPConfig 3.2: ISPConfig 3.2 puede crear un certificado SSL válido de Let’s Encrypt para el nombre de host del servidor automáticamente durante la instalación, que también se utiliza para el servidor de correo. No es necesario crear manualmente un certificado SSL de Let’s Encrypt como se describe aquí en sistemas ISPConfig 3.2 a menos que necesites diferentes nombres de dominio en el certificado SSL además del nombre de host del servidor.
Requisitos previos
- Tu servidor debe estar instalado de acuerdo con el tutorial de Perfect Server para tu SO.
- Asegúrate de haber iniciado sesión como usuario root.
Comenzando
Voy a usar los siguientes nombres de host para mi servidor de correo: mail.ejemplo.com, smtp.ejemplo.com, imap.ejemplo.com.
Reemplaza todos los nombres de host subrayados en rojo en este tutorial con los tuyos.
Crea los registros DNS para tu(s) nombre(s) de host, para que apunten a tu servidor. Estos deben ser registros A (y eventualmente AAAA). Luego, en la interfaz de ISPConfig, ve a la pestaña de Sitios.
Emisión del certificado
Bajo Sitios, haz clic en “Agregar nuevo sitio web”. Establece mail.ejemplo.com como dominio. Desactiva Subdominio automático y marca la casilla de Let’s Encrypt.
Después de esto, puedes agregar tus otros nombres de host como dominios alias, yendo a la lista de dominios alias y haciendo clic en “Agregar nuevo dominio alias”. Selecciona smtp.ejemplo.com como dominio y mail.ejemplo.com como sitio web principal. Desactiva Subdominio automático y guarda el nuevo registro. Repite esto para tus otros nombres de host.
Verifica que el certificado esté en su lugar. Puedes hacer esto con una herramienta como https://www.sslshopper.com/ssl-checker.html
Debería verse algo así:

Si los nombres de host están listados y no hay otros errores, puedes continuar. De lo contrario, verifica los errores y resuélvelos antes de continuar.
Reemplazando el certificado con el certificado de Let’s Encrypt
Ahora podemos reemplazar el certificado actual con tu certificado de confianza. Inicia sesión en tu servidor y ejecuta estos comandos:
(reemplaza mail.ejemplo.com con el nombre de host que usaste para el sitio web)
cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak
ln -s /var/www/mail.ejemplo.com/ssl/mail.ejemplo.com-le.crt smtpd.cert
ln -s /var/www/mail.ejemplo.com/ssl/mail.ejemplo.com-le.key smtpd.key
systemctl restart postfix
systemctl restart dovecotEl certificado ahora debería ser utilizado para tu servidor Postfix y Dovecot. Pero aún no hemos terminado. El certificado de Let’s Encrypt se renueva cada 60 días, por lo que deberíamos automatizar el proceso de reemplazo del certificado en el futuro, para que no te olvides de ello.
Nodos multiserver sin GUI de ISPConfig
Si este es un nodo sin GUI en una configuración multiserver de ISPConfig, debes verificar si ISPConfig en sí tiene un certificado SSL. No realices este paso en una configuración de servidor único o en un servidor que ejecute una GUI de ISPConfig.
Puedes hacer la prueba con los siguientes comandos ls:
cd /usr/local/ispconfig/interface/ssl/
ls ispserver.crt
ls ispserver.keyEl resultado se verá así si ya hay un certificado:
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.crt
ispserver.crt
root@server:/usr/local/ispconfig/interface/ssl# ls ispserver.key
ispserver.keySi los dos comandos ls no devuelven los archivos ispserver.crt e ispserver.key, entonces créalos como enlaces simbólicos al certificado de Let’s Encrypt así:
ln -s /var/www/mail.ejemplo.com/ssl/mail.ejemplo.com-le.cer ispserver.crt
ln -s /var/www/mail.ejemplo.com/ssl/mail.ejemplo.com-le.key ispserver.keyConfigurar un script de renovación automática
Abre un nuevo archivo de script:
nano /usr/local/bin/le_mailserver_restart.shPega esto en ese archivo:
#!/bin/sh
### BEGIN INIT INFO
# Provides: LE MAILSERVER CERT AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE MAILSERVER CERT AUTO UPDATER
# Description: Reinicia el servidor de correo automáticamente cuando se emite un nuevo certificado de Let's Encrypt.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecotHaz que el script sea ejecutable:
chmod +x /usr/local/bin/le_mailserver_restart.shPara activar automáticamente este script en la renovación, vamos a usar systemd.
Crea y abre el nuevo servicio de systemd:
nano /etc/systemd/system/le-mailserver-restart.servicePega esto en ese archivo:
[Unit]
Description="Ejecutar script para reiniciar Postfix y Dovecot después de que se haya renovado el certificado"
[Service]
ExecStart=/usr/local/bin/le_mailserver_restart.shGuarda y cierra este archivo. Luego crea y abre el nuevo archivo de ruta de systemd:
nano /etc/systemd/system/le-mailserver-restart.pathPega esto en ese archivo y reemplaza mail.ejemplo.com con el nombre de host que usaste:
[Unit]
Description="Monitorear los archivos de certificado del servidor de correo para activar un reinicio de los servicios de correo después de que se hayan renovado los certificados"
[Path]
PathModified=/var/www/mail.ejemplo.com/ssl/
Unit=le-mailserver-restart.service
[Install]
WantedBy=multi-user.targetGuarda y cierra este archivo. Luego inicia el servicio y habilítalo para que se ejecute al inicio:
systemctl start le-mailserver-restart.pathY habilítalo para que se ejecute al inicio:
systemctl enable le-mailserver-restart.path¡Y hemos terminado!
¿No funciona?
Una vez tuve un problema con esto, porque Let’s Encrypt utilizó uno de los dominios alias como dominio principal. Puedes encontrar el dominio principal en la herramienta SSL mencionada anteriormente como “Nombre común” o listando el contenido de /root/acme.sh/ para ver cuál de los (alias)dominios tiene una carpeta allí.
Si aún experimentas un problema, abre un hilo en el foro para que otros puedan ayudarte.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.