Fecha actual Jue Nov 21, 2024 1:42 pm


Certificados gratuitos de Let's Encrypt.

Cualquier tema que no trate sobre fotografía

Moderadores: IOM60, laucsap60, klomp, Siniestro, Guillermo Luijk, Pablo Valido

Certificados gratuitos de Let's Encrypt.

Notapor rivaner » Mar Nov 05, 2024 1:48 pm

Para no embarullar el hilo de tema quincenal lo he pasado aquí.
Guillermo Luijk escribió:Gracias, si me dices como se hace y es fácil (tengo acceso FTP y demás) lo intento.
Salu2!

Que sea más o menos fácil depende de dónde y cómo esté instalado el servidor y qué clase de acceso se tenga:

- El punto de partida es la página de Let's Encrypt. Como se indica ahí, lo mejor es tener acceso shell e instalar certbot.
- Si no es posible, lo siguiente más fácil sería recurrir a un ISP que ofrezca ese servicio (a día de hoy, que yo sepa, en España lo hace cdmon).
- La última -y peor- opción es hacerlo manualmente porque obliga a hacer también así las actualizaciones.

Asumiendo que estemos en el primer caso -tenemos acceso shell-, las instrucciones oficiales se pueden encontrar aquí (para un servidor Apache y OS Linux).

Cuando yo lo instalé no existía esa página, así que tras buscar información lo hice de la siguiente manera (Apache y Linux Debian, 'midominio' es ficticio):

INSTALACIÓN

- Se supone que el router del servidor tiene abiertos los puertos 80 y 443.
- Desde el terminal se instala certbot y se crea el certificado (se escoge el HTTPS para todos):
Código: Seleccionar todo
  $ sudo apt install certbot
  $ sudo apt install python3-certbot-apache
  $ sudo certbot --apache -d midominio.es, www.midominio.es

  The new certificate covers the following domains: https://midominio.es,
  and https://www.midominio.es

  Congratulations! Your certificate and chain have been saved at:
  /etc/letsencrypt/live/midominio.es/fullchain.pem
  Your key file has been saved at:
  /etc/letsencrypt/live/midominio.es/privkey.pem

- Se ajusta la configuración SSL de Apache (Apache configuration):
Código: Seleccionar todo
<VirtualHost *:443>
       ...
        # Let's Encrypt (certbot)
        Include /etc/letsencrypt/options-ssl-apache.conf
        SSLEngine on
        SSLProtocol -all +TLSv1.2 +TLSv1.3
        SSLHonorCipherOrder on
        SSLCipherSuite EECDH+AESGCM:EDH+AESGCM
        SSLCompression off
        ServerSignature     Off
        # --- Let's Encrypt
       ...
</VirtualHost>

- Tras rebotar Apache, el certificado ya debe poder comprobarse en SSLLabs.

RENOVACIÓN AUTOMÁTICA

- Se hace la prueba de renovación (dry-run indica que no es una renovación real, solo para comprobar que todo está correcto):
Código: Seleccionar todo
   $ sudo certbot renew --dry-run
   ...
   Plugins selected: Authenticator apache, Installer apache
   ...

Para renovar hay dos opciones:
- Un cron para certbot (la instalación lo añade y se ejecuta cada 12 horas). Puede verse con:
Código: Seleccionar todo
   $ cat /etc/cron.d/certbot

- Un timer systemd:
Código: Seleccionar todo
   $ sudo systemctl status certbot.timer
   $ sudo systemctl enable certbot.timer (si no lo está ya)
   $ sudo systemctl start certbot.timer
   $ sudo journalctl -u certbot.service (log de la ejecución)

El timer es mejor solución, y, si está activo, el cron lo detecta y no se ejecuta.

Y esto es todo para un uso normal en un servidor web. :)

Se pueden usar los mismos certificados en un servidor IMAP (por ejemplo, Dovecot), SMTP (Postfix) o FTP siempre que se hayan añadido esos subdominios en el momento de generar los certificados (por ejemplo, imap.midominio.es). Sin embargo en estos casos hay que prever un mecanismo para que esos servidores carguen y usen el nuevo certificado tras cada renovación. La solución es también sencilla (indicarle al certbot que al terminar la renovación ejecute un script shell al efecto) pero creo que se sale ya de la finalidad de este post.
Avatar de Usuario
rivaner
 
Mensajes: 267
Registrado: Jue Feb 21, 2019 8:44 am

Volver a Off topic



¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 73 invitados

cron