Este tutorial muestra cómo puede usar un certificado SSL Clase 1 gratuito de StartSSL para proteger su instalación de ISPConfig 3 y deshacerse de las advertencias de certificado autofirmado. La guía cubre el uso del certificado SSL para la interfaz web ISPConfig (tanto Apache2 como nginx), Postfix (para conexiones TLS), Courier y Dovecot (para POP3 e IMAP) y PureFTPd (para conexiones TLS/FTPES). Si instaló monit y usa HTTPS para su interfaz web, también le mostraré cómo usar el certificado StartSSL. Esta guía asume que usa Debian o Ubuntu; el principio es el mismo para otras distribuciones compatibles con ISPConfig 3, pero las rutas pueden diferir.
ACTUALIZACIÓN 20/12/2017
Los navegadores ya no confían en StartSSL CA y dejarán de emitir certificados SSL el 1 de enero de 2018. Hay una buena alternativa disponible hoy, use Let's Encrypt en lugar de StartSSL para obtener un certificado SSL gratuito. Aquí puede encontrar instrucciones sobre cómo usar un certificado Let's encrypt SSL para ISPConfig, Postfix, Dovecot, Courier, Monit y PureFTPD:
https://www.howtoforge.com/community/threads/secureing-ispconfig-3-control-panel-port-8080-with-lets-encrypt-free-ssl.75554/
1 nota preliminar
Supongo que ha utilizado una de las guías de http://www.ispconfig.org/ispconfig-3/documentation/ para configurar su sistema. Como mencioné antes, me concentraré en Debian/Ubuntu en esta guía, pero también debería funcionar para otras distribuciones compatibles con ISPconfig 3 (aunque es posible que deba ajustar algunas rutas).
Usaré el nombre de host server1.example.com aquí; StartSSL le permite crear el certificado Class1 para el dominio principal y un subdominio, por lo que crearé el certificado para example.com y server1.example.com. Esto significa que debe indicar a sus usuarios que utilicen el dominio principal ejemplo.com o el subdominio servidor1.ejemplo.com para todos los servicios (interfaz web ISPConfig, Postfix, Courier/Dovecot, PureFTPD, etc.) porque, de lo contrario, recibirán advertencias de certificado. .
Si prefiere usar diferentes nombres de host para sus servicios (por ejemplo, mail.example.com para Postfix, ispconfig.example.com para ISPConfig, etc.), le sugiero que obtenga un certificado Class2 de StartSSL. No es gratuito, pero le permite crearlo para múltiples subdominios (incluso puede usar *.example.com para crearlo para todos los subdominios) e incluso para múltiples dominios. Las instrucciones son las mismas, excepto que cuando uso el certificado intermedio sub.class1.server.ca.pem de StartSSL, debe usar sub.class2.server.ca.pem en su lugar. Describiré esta diferencia a lo largo del tutorial.
Estoy ejecutando todos los pasos de este tutorial con privilegios de root, así que asegúrese de haber iniciado sesión como root. Si usa Ubuntu, ejecute...
sudo su
... para obtener privilegios de root.
2 Creación de una solicitud de firma de certificado (CSR)
Necesitamos una solicitud de firma de certificado (CSR) para obtener un certificado SSL de StartSSL. Dado que el instalador de ISPConfig (para versiones>=3.0.4) crea esto de todos modos, usaré este CSR como base para cifrar todos los servicios (ISPConfig, Postfix, etc.).
Desde la versión 3.0.4 de ISPConfig, el instalador de ISPConfig ofrece la opción de usar el cifrado SSL para la interfaz web de ISPConfig, crea un certificado autofirmado (4096 bits) que incluye una CSR si responde la siguiente pregunta con ENTER o y:
¿Quiere una conexión segura (SSL) a la interfaz web de ISPConfig (s, n) [s]:<-- ENTRAR
Para que el instalador de ISPConfig cree la CSR con los datos correctos, debe ingresar los detalles correctos cuando vea estas preguntas:
Generación de clave privada RSA, módulo largo de 4096 bits
.................................... .......................++
..................... ..........................................................++
e es 65537 (0x10001)
Se le pedirá que ingrese información que se incorporará
en su solicitud de certificado.
Lo que está a punto de ingresar es lo que se llama un nombre distinguido o un DN.
Hay bastantes campos, pero puede dejar algunos en blanco
Para algunos campos habrá un valor predeterminado,
Si ingresa '.', el campo se dejará en blanco.
-----
Nombre del país (código de 2 letras) [AU]:<-- DE
Nombre del estado o provincia (nombre completo) [Algún estado] :<-- Niedersachsen
Nombre de la localidad (p. ej., ciudad) []:<-- Lueneburg
Nombre de la organización (p. ej., empresa) [Internet Widgits Pty Ltd]:<-- My Company Ltd.
Nombre de la unidad organizativa (p. ej., sección) []:<-- TI
Nombre común (p. ej., SU nombre) []:<-- ejemplo.com
Dirección de correo electrónico []:<-- [email prote cted]
Ingrese los siguientes atributos 'adicionales'
que se enviarán con su solicitud de certificado
Una contraseña de desafío []:<-- ENTRAR
Un nombre de empresa opcional []:<-- ENTRAR
escribir clave RSA
Si inicialmente creó el certificado con datos incorrectos, puede actualizar ISPConfig ejecutando...
ispconfig_update.sh
... o, si ya tiene instalada la última versión, ejecute los siguientes comandos:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xvfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install
php -q update.php
Esto le permitirá crear un nuevo certificado para su interfaz web ISPConfig 3 respondiendo a la siguiente pregunta con un sí:
Crear nuevo certificado SSL ISPConfig (sí, no) [no]:<-- sí
Si usa una versión de ISPConfig anterior a la 3.0.4, ahora debe actualizar a la última versión estable ejecutando...
ispconfig_update.sh
Esto también le permitirá crear una conexión SSL para su interfaz web ISPConfig 3 respondiendo la siguiente pregunta con un sí:
Crear nuevo certificado SSL ISPConfig (sí, no) [no]:<-- sí
Como se describió anteriormente, asegúrese de ingresar los detalles correctos.
Luego, debe tener una clave SSL, un CSR y un certificado autofirmado en el directorio /usr/local/ispconfig/interface/ssl/:
ls -l /usr/local/ispconfig/interface/ssl/
[email protected]:~# ls -l /usr/local/ispconfig/interface/ssl/
total 16
-rwxr-x--- 1 ispconfig ispconfig 2423 Jan 16 13:29 ispserver.crt
-rwxr-x--- 1 ispconfig ispconfig 1777 Jan 16 13:29 ispserver.csr
-rwxr-x--- 1 ispconfig ispconfig 3243 Jan 16 13:29 ispserver.key
-rwxr-x--- 1 ispconfig ispconfig 3311 Jan 16 13:28 ispserver.key.secure
[email protected]:~#
Todo lo que necesitamos en este tutorial es la clave privada (ispserver.key) y la CSR (ispserver.csr); reemplazaremos ispserver.crt con el certificado Class1 de StartSSL. Puede ignorar ispserver.key.secure.
También es posible crear ispserver.key e ispserver.csr en la línea de comando de la siguiente manera:
cd /usr/local/ispconfig/interface/ssl/
openssl req -new -newkey rsa:4096 -days 365 -nodes -keyout ispserver.key -out ispserver.csr
(Esto no le dará ispserver.crt, lo cual no importa, ya que obtendremos nuestro certificado firmado de StartSSL).
Su ispserver.csr debería ser similar a este (he borrado gran parte de él porque este es un CSR real que uso):
cat /usr/local/ispconfig/interface/ssl/ispserver.csr
-----BEGIN CERTIFICATE REQUEST----- MIIC7TCCAdUCAQAwgacxCzAJBgxxxxxxAkRFMRYwFAYDVQQIDA1OaWVkZXJzYWNo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 9Z5RhXTfOz8F2wsNH5yP9eqkVlkYKpIwyUHoZtUSp+xz -----END CERTIFICATE REQUEST----- |
-----BEGIN CERTIFICATE----- MIIHMTCCBhmgAwIBAgIDxxxxxx0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx c2x1wonVRVmKovt2OuM1ZqZw0Ynk -----END CERTIFICATE----- |
[...] # SSL Configuration SSLEngine On SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key ## must be re-added after an ISPConfig update!!! SSLCertificateChainFile /usr/local/ispconfig/interface/ssl/startssl.sub.class1.server.ca.crt [...] |
[...] ssl_cert_file = /etc/postfix/smtpd.cert ssl_key_file = /etc/postfix/smtpd.key ## must be re-added after an ISPConfig update!!! ssl_ca_file = /usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crt [...] |
[...] ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key ## must be re-added after an ISPConfig update!!! ssl_ca = </usr/local/ispconfig/interface/ssl/startssl.chain.class1.server.crt [...] |