SSL Certificado · 7 min read · Sep 24, 2025

Asegurando ISPConfig 3.1 Con un Certificado SSL Gratuito de Let's Encrypt

IMPORTANTE: Esta guía no es compatible con ISPConfig 3.2 y versiones más nuevas, ya que ISPConfig 3.2 y versiones posteriores tienen Let’s Encrypt para todos los servicios incorporado. El certificado SSL de Let’s Encrypt se configura automáticamente durante la instalación, por lo que ya no es necesario configurar Let’s Encrypt manualmente para ningún servicio.

Autor: ahrasis

Este tutorial muestra cómo crear y configurar un certificado SSL gratuito de Let’s Encrypt para la interfaz de ISPConfig (puerto 8080), el sistema de correo electrónico (Postfix y Dovecot/Courier), el servidor FTP (pure-ftpd) y Monit. Los comandos en este tutorial han sido probados en Ubuntu 16.04, deberían funcionar también para Debian. Es posible que se necesiten ciertas modificaciones para que funcione en CentOS.

Ayuda sobre esta guía está disponible en este hilo del foro.

Creando Un Sitio Web Usando el Nombre de Host FQDN del Servidor ISPConfig

Crea un sitio para tu servidor en el panel de ISPConfig a través de Sitios > Sitio Web > Agregar nuevo sitio web. ¡Recuerda! Este es el sitio web de tu servidor y, como tal, debe contener el nombre de dominio completamente calificado (FQDN) de tu servidor. Me referiré a él como hostname -f en esta guía.

hostname -f

Con suerte, funcionará sin ningún cambio en tu servidor también.

Accediendo al Sitio Web de ISPConfig en Línea

Verifica si el sitio de tu servidor está listo y accesible en línea, ya que Let’s Encrypt necesita verificar que tu sitio web sea accesible antes de emitir la clave SSL, el certificado y el archivo de cadena para tu sitio de servidor. También debes crear su zona DNS y permitir que se propague correctamente, ya que Let’s Encrypt necesita verificarlo también.

Habilitando SSL Para el Panel de Control de ISPConfig 3 (Puerto 8080)

Si no has habilitado SSL durante la configuración de ISPConfig, es decir, para su panel de control en el puerto 8080, habilítalo escribiendo ispconfig_update.sh en la terminal y selecciona sí para SSL. No necesitamos que esto sea una clave adecuada ni queremos conservarla, pero queremos trabajar más rápido, por lo tanto, podemos simplemente presionar enter para todos sus campos. Cuando termines esto, el SSL autofirmado ya debería estar habilitado para tu ISPConfig.

Verificando SSL Para el Panel de Control de ISPConfig 3 (Puerto 8080)

Verifica en tu navegador para confirmar abriendo el panel de control de ISPConfig en el puerto 8080. Ten en cuenta que podrías recibir alguna advertencia en esta etapa, ya que los archivos SSL creados son autofirmados, pero el navegador confirmará que tu ISPConfig tiene SSL habilitado o no.

Asegurando el Sitio Web de ISPConfig Con SSL de Let’s Encrypt

Si lo anterior está hecho, regresa a Panel de ISPConfig > Sitios > Sitio Web > Nombre del Sitio Web, luego haz clic en los botones de verificación SSL y Let’s Encrypt y guarda - para crear los archivos SSL de Let’s Encrypt y habilitarlos para tu sitio de servidor. Si tiene éxito, tu sitio de servidor ahora debería estar utilizando estos archivos SSL de Let’s Encrypt, pero no tu página de ISPConfig 8080. Si no tiene éxito, no podrás continuar, así que verifica su archivo de registro para obtener una pista.

Cambiando el Panel de Control de ISPConfig 3 (Puerto 8080)

Si el SSL de LE ya está funcionando, entonces ve a tu terminal de servidor, accede como root a través de sudo su y utiliza el siguiente comando para hacer una copia de seguridad y reemplazar los archivos SSL autofirmados creados con los archivos SSL de Let’s Encrypt.

cd /usr/local/ispconfig/interface/ssl/  
mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak  
mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak  
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt  
ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key  
cat ispserver.{key,crt} > ispserver.pem  
chmod 600 ispserver.pem
  • Si no has creado ispserver.pem antes, puedes ignorar la tercera línea que está destinada a renombrar el existente, si lo hay, como una copia de seguridad.
  • Ten en cuenta que estamos utilizando la carpeta en vivo de Let’s Encrypt en lugar de la carpeta de archivo.
  • También nota la última línea donde se crea ispserver.pem combinando archivos, por lo tanto, no se renovará automáticamente por Let’s Encrypt a diferencia de otros archivos que simplemente hemos enlazado, por lo tanto, trataremos esto en la última parte de esta guía.
  • También ten en cuenta que puedes escribir hostname -f o server1.example.com ya que el resultado es el mismo porque hostname -f es server1.example.com.

Usando Los Mismos Certificados SSL de Let’s Encrypt Para Otros Servicios Principales

Como consejos adicionales, basados en Asegurando Tu Instalación de ISPConfig 3, es posible que desees usar un enlace simbólico a ispserver.key o .crt o .pem en lugar de apuntar directamente tu postfix, dovecot, courier, pure-FTPd y monit a los archivos SSL de Let’s Encrypt. Para dovecot, si ya está utilizando archivos SSL de postfix, es seguro que lo ignores. En detalles, solo necesitas hacer lo siguiente:

a. Para Postfix

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 /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key  
service postfix restart  
service dovecot restart

b. Para dovecot: (* Nota que esto no debería existir junto con courier)

Verifica si este código existe usando nano /etc/dovecot/dovecot.conf

[...]  
ssl_cert = 

Déjalos como están si existen. De lo contrario, corrígelos. En cualquier caso, ejecutar service dovecot restart ya está cubierto arriba.

c. Para courier: (* Nota que esto no debería existir junto con dovecot)

cd /etc/courier/  
mv imapd.pem imapd.pem-$(date +"%y%m%d%H%M%S").bak  
mv pop3d.pem pop3d.pem-$(date +"%y%m%d%H%M%S").bak  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem imapd.pem  
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pop3d.pem  
service courier-imap-ssl stop  
service courier-imap-ssl start  
service courier-pop-ssl stop  
service courier-pop-ssl start

d. Para pure-FTPd:

cd /etc/ssl/private/
mv pure-ftpd.pem pure-ftpd.pem-$(date +”%y%m%d%H%M%S”).bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem
chmod 600 pure-ftpd.pem
service pure-ftpd-mysql restart

e. Para monit: (Si lo tienes instalado en tu servidor)

nano /etc/monit/monitrc

Agrega el enlace simbólico anterior a ispserver.pem que creamos para pure-ftpd aquí también:

[...]  
set httpd port 2812 and  
SSL ENABLE  
PEMFILE /etc/ssl/private/pure-ftpd.pem  
allow admin:'secretpassword'  
[...]

Y reinicia monit:

service monit restart

Crear un Script de Renovación Automática Para Tu Archivo Pem de ISPConfig (ispserver.pem)

En este último paso, que no he encontrado en ninguna guía hasta ahora, está la actualización automática de ispserver.pem como se insinuó anteriormente. Actualmente, debe ser cambiado manualmente justo después de que Let’s Encrypt renueve automáticamente tus archivos SSL de servidor. Para evitar pasar por alto esto, es posible que desees instalar incron como se sugiere en el respectivo tutorial de incron y crear un script para actualizar automáticamente tu archivo ispserver.pem, de la siguiente manera:

A través del comando de terminal, instala incron, luego crea el archivo de script y edítalo usando nano:

apt install -y incron  
nano /etc/init.d/le_ispc_pem.sh

Agrega esto en el le_ispc_pem.sh:

#!/bin/sh  
### BEGIN INIT INFO  
# Provides: LE ISPSERVER.PEM 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 ISPSERVER.PEM AUTO UPDATER  
# Description: Update ispserver.pem automatically after ISPC LE SSL certs are renewed.  
### END INIT INFO  
cd /usr/local/ispconfig/interface/ssl/  
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak  
cat ispserver.{key,crt} > ispserver.pem  
chmod 600 ispserver.pem  
chmod 600 /etc/ssl/private/pure-ftpd.pem  
service pure-ftpd-mysql restart  
service monit restart  
service postfix restart  
service dovecot restart  
service nginx restart
  • Nota que algunas personas no instalan monit, por lo que pueden eliminarlo de forma segura. Ajusta el script anterior en consecuencia.
  • Para una configuración de múltiples servidores, consulta el post #203 y agrega el código scp dado aquí para automatizar futuras actualizaciones.

Luego lo hacemos ejecutable, agregamos root como un usuario permitido para incrontab y luego editamos el archivo incrontab:

chmod +x /etc/init.d/le_ispc_pem.sh  
echo "root" >> /etc/incron.allow  
incrontab -e

Agrega esta línea en el incrontab:

/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.sh

Reiniciando Tus Servicios

Creo que eso es todo para Asegurar Tu Servidor Con Let’s Encrypt. Es posible que desees reiniciar tu servidor web después.

service nginx restart

Recuerda: si estás usando apache, cambia nginx a apache2 en consecuencia.

LE4ISPC

Como alternativa, podrías querer usar el script LE4ISPC creado para este propósito que soporta tanto nginx como apache2 desde ISPConfig hasta pure-ftpd arriba, excepto para monit. Antes de usarlo, ya deberías haber completado los pasos anteriores (1-5) y tener:

  1. Creado el sitio web para tu servidor a través de ISPConfig;
  2. El sitio web accesible en línea;
  3. SSL de ISPConfig habilitado (a través de instalación o actualización);
  4. SSL de LE habilitado con éxito para el sitio web.
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.