Zentyal por defecto uso certificados auto firmados para sus módulos, incluyendo el uso del módulo de CA. Esta situación provoca que se muestren warning como por ejemplo, usando clientes de correo o al acceder al webadmin o webmail. Es por esto que en esta página se mostrará como generar certificados reconocidos emitidos por Let's Encrypt.
Las acciones que realizaré para el proyecto serán:
Emitiré 2 certificados, teniendo uno de ellos dos subdominios:
Módulo de webadmin: arthas.icecrown.es
Módulo de correo y webmail: mail.icecrown.es y webmail.icecrown.es
Creamos una regla temporal en el firewall de Zentyal como en el security group de AWS que permita el protocolo HTTP para que el certificado pueda expedirse:
Para el firewall de Zentyal:
Para el security group de AWS:
Nota
Podremos eliminar esta regla una vez hayamos emitidos los certificados o la mantendremos para evitar tener que volver a establecerla cuando toque la renovación de los certificados.
Creamos la cuenta de correo que recibirá las notificaciones:
Comprobaremos que desde el exterior podemos resolver los subdominios en cuestión:
Para generar el certificado para el Webadmin (panel de administración) usaremos el paquete python3-certbot-apache en lugar de python3-certbot-nginx debido a que Zentyal ejecuta Nginx de forma personalizada, lo que provoca errores a la hora de generar certificados.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for arthas.icecrown.es
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/arthas.icecrown.es/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/arthas.icecrown.es/privkey.pem
Your cert will expire on 2023-05-19. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Con el certificado generado, tendremos que modificar la plantilla de configuración (stub) del módulo, para que dicho cambio sea persistente ante futuras actualizaciones del módulo por parte de Zentyal. Para ello, crearemos los directorios necesarios:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mail.icecrown.es
http-01 challenge for webmail.icecrown.es
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mail.icecrown.es/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mail.icecrown.es/privkey.pem
Your cert will expire on 2023-05-19. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Con el certificado correctamente generado, procederé a configurar los ambos módulos para que hagan uso de el.
## Custom certificates issued on 18-02-2023 by Daniel
# SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
# SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLCertificateFile /etc/letsencrypt/live/mail.icecrown.es/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.icecrown.es/privkey.pem
Opcionalmente, también añadiré los siguientes parámetros de configuración al final del archivo de configuración. Los valores de los parámetros han sido generados desde esta página web.
## Custom configuration applied on 18-02-2023 by Daniel
## https://ssl-config.mozilla.org/#server=apache&version=2.4.41&config=intermediate&openssl=1.1.1k&hsts=false&ocsp=false&guideline=5.6
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
Finalmente, confirmamos que ambos servicios están usando correctamente el nuevo certificado. Para realizar dicha acción, podremos usar cliente de correo como Thunderbird o el comando openssl como será mi caso: