Migracion inicial desde DokuWiki
This commit is contained in:
81
tecnica/servidores/correo_certificados_certbot.md
Normal file
81
tecnica/servidores/correo_certificados_certbot.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# iRedMail - Certificados gratis Let’s Encrypt con certbot
|
||||
|
||||
1 - Instalar certbot
|
||||
|
||||
apt install -y certbot
|
||||
|
||||
Con este comando como usuario root verificamos el proceso de solicitud con **–dry-run** argumentos. Se imprimirá un texto en la consola para hacerle algunas preguntas simples. Léalas con atención y respóndalas.
|
||||
|
||||
certbot certonly –webroot –dry-run -w /var/www/html -d mail.eldia.com
|
||||
|
||||
Si nu informó errores en la consola, entonces lo volvemos a ejecutar pero sin el parametro **–dry-run**
|
||||
|
||||
certbot certonly --webroot -w /var/www/html -d mail.eldia.com
|
||||
|
||||
Si el comando finalizó correctamente, creará y almacenará los archivos de certificado en **/etc/letsencrypt/live/mail.eldia.com/**
|
||||
|
||||
**Archivos de certificado creados:**
|
||||
|
||||
cert.pem Certificado de servidor.
|
||||
chain.pem Certificado o certificados intermedios adicionales que los navegadores web necesitarán para validar el certificado del servidor.
|
||||
fullchain.pem Todos los certificados, incluido el certificado de servidor (también conocido como certificado de hoja o certificado de entidad final). El certificado de servidor es el primero en este archivo, seguido de los intermedios.
|
||||
privkey.pem Clave privada para el certificado.
|
||||
|
||||
Los directorios **/etc/letsencrypt/live/** y **/etc/letsencrypt/archive/** son propiedad del usuario y grupo root, con el permiso 0700 de manera predeterminada, lo que significa que otros usuarios no pueden acceder a ellos, incluidos los usuarios del demonio que se utilizan para ejecutar servicios de red como Postfix/Dovecot/OpenLDAP/MariaDB/PostgreSQL. Es necesario establecer el permiso en 0755 para que otras aplicaciones puedan acceder a ellos.
|
||||
|
||||
chmod 0755 /etc/letsencrypt/{live,archive}
|
||||
|
||||
Utilizar el certificado Let’s Encrypt
|
||||
|
||||
La forma más fácil y rápida de utilizar el certificado Let’s Encrypt es creando enlaces de símbolos al certificado SSL autofirmado generado por el instalador de iRedMail y luego reiniciar los servicios para cargar los archivos del certificado.
|
||||
|
||||
mv /etc/ssl/certs/iRedMail.crt{,.bak} # Backup. Rename iRedMail.crt to iRedMail.crt.bak
|
||||
mv /etc/ssl/private/iRedMail.key{,.bak} # Backup. Rename iRedMail.key to iRedMail.key.bak
|
||||
ln -s /etc/letsencrypt/live/mail.eldia.com/fullchain.pem /etc/ssl/certs/iRedMail.crt
|
||||
ln -s /etc/letsencrypt/live/mail.eldia.com/privkey.pem /etc/ssl/private/iRedMail.key
|
||||
|
||||
Ahora reinicie los servicios Postfix / Dovecot / Nginx para usar el certificado:
|
||||
|
||||
systemctl restart postfix dovecot nginx
|
||||
|
||||
Verificar el certificado
|
||||
|
||||
Para verificar el certificado SSL utilizado en Postfix (servidor SMTP) y Dovecot, inicie una aplicación de cliente de correo (MUA, por ejemplo, Outlook, Thunderbird) y cree una cuenta de correo electrónico. Asegúrese de haber configurado correctamente MUA para conectarse al servidor de correo. Si el certificado SSL no es válido, MUA le advertirá. Para el servidor web Apache/Nginx, puede acceder a su sitio web con su navegador web favorito, que debería mostrarle el estado del certificado SSL. O bien, utilice otro sitio web para probarlo, por ejemplo: <https://www.ssllabs.com/ssltest/index.html> (ingrese el nombre de su servidor web, envíelo y espere el resultado).
|
||||
|
||||
Renovar el certificado automáticamente El certificado se puede renovar manualmente con el comando certbot renew, o ejecutar el mismo comando en una tarea cron diaria o semanal para renovarlo automáticamente. Solo se renovarán aquellos certificados que caduquen en menos de 30 días. Las aplicaciones que usan certificados SSL deben reiniciarse para cargar los archivos de certificados renovados.
|
||||
|
||||
El certificado se puede renovar manualmente con el comando certbot renew, o ejecutar el mismo comando en una tarea cron diaria o semanal para renovarlo automáticamente. Solo se renovarán aquellos certificados que caduquen en menos de 30 días. Las aplicaciones que usan certificados SSL deben reiniciarse para cargar los archivos de certificados renovados.
|
||||
|
||||
Si se renovó el certificado, la clave privada **/etc/letsencrypt/live/eldia.com/privkey.pem** se vuelve a crear y se vincula al archivo bajo **/etc/letsencrypt/archive/eldia.com/privkey\<X\>.pem** ( \<X\>es un número de dígito), pero todos los archivos vinculados a **/etc/letsencrypt/live/eldia.com/privkey.pem** se dejaron en el anterior, por lo que debemos actualizar todos los archivos vinculados a **/etc/letsencrypt/live/eldia.com/privkey.pem** con el argumento **–post-hookjust** después de la renovación para asegurarnos de que estén vinculados al correcto.
|
||||
|
||||
Aquí hay un ejemplo de trabajo cron que se ejecuta a los lunes de cada mes entre los días 10 y 28 a las 10:00 a. m. y reinicia **postfix/nginx/dovecot** después de la renovación:
|
||||
|
||||
00 10 10-28 * 1 certbot certificates; certbot renew ; /usr/bin/systemctl restart postfix dovecot nginx
|
||||
|
||||
**Configuración de certificados en diferentes aplicaciones**
|
||||
|
||||
**POSTFIX** - Archivo /etc/postfix/main.cf
|
||||
|
||||
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
|
||||
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
|
||||
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt
|
||||
|
||||
**DOVECOT - Archivo /etc/dovecot/dovecot.conf**
|
||||
|
||||
ssl = required
|
||||
ssl_cert = </etc/ssl/certs/iRedMail.crt
|
||||
ssl_key = </etc/ssl/private/iRedMail.key
|
||||
ssl_ca = </etc/ssl/certs/iRedMail.crt
|
||||
|
||||
**NGINX - Archivo /etc/nginx/templates/ssl.tmpl**
|
||||
|
||||
ssl_certificate /etc/ssl/certs/iRedMail.crt;
|
||||
ssl_certificate_key /etc/ssl/private/iRedMail.key;
|
||||
|
||||
**OPENLDAP - OPCIONAL - Archivo /etc/ldap/slapd.conf.**
|
||||
|
||||
Si OpenLDAP está escuchando en el host local y no es accesible desde la red externa.
|
||||
|
||||
TLSCACertificateFile /etc/ssl/certs/iRedMail.crt
|
||||
TLSCertificateKeyFile /etc/ssl/private/iRedMail.key
|
||||
TLSCertificateFile /etc/ssl/certs/iRedMail.crt
|
||||
Reference in New Issue
Block a user