Certbot y ngnix - renovación y alta sin parada de servicio
2 min de lectura

Certbot y ngnix - renovación y alta sin parada de servicio

229 palabras

A la hora de instalar/renovar let’s encrypt en un servidor web con nginx tenemos que decidir si lo hacemos con un servidor temporal, lo que implica que debemos parar el servicio web temporalmente, o indicando cual es el DocumentRoot del servidor web para el dominio.

Esto último implica que la web o servicio tenga un DocumentRoot “público”, y eso no es siempre sencillo cuando estamos utilizando, por ejemplo una aplicación en Python, Java, Go y el nginx como proxy.

Para poder crear o renovar el certificado sin parar el servicio podemos crear un “alias” en el nginx para el dominio que apunte a una carpeta temporal.

Si creamos la carpeta /tmp/letsencrypt-auto

En la configuración del dominio en el nginx añadiremos dentro del server { } :

[...]

  location /.well-known/acme-challenge {
    default_type "text/plain";
    root        /tmp/letsencrypt-auto;
  }

[...]

Con un reload del nginx (sin parada de servicio) ya tendremos esto configurado.

Con esto cualquier petición al dominio/.well-known/acme-challenge será respondida por el contenido de nuestra carpeta /tmp/letsencrypt-auto

Así lo generaremos con

certbot certonly --webroot -w /tmp/letsencrypt-auto -d mydomain.com

A partir de este momento podremos automatizar la renovación del certificado poniendo en el crontab un

certbot renew

NOTA: Es importante tambien poner en el crontab una tarea para que recargue (reload) el nginx, porque de otra forma, aunque tengamos el certificado renovado, el nginx no estará utilizando el certificado actualizado sino el anterior.

Comentarios

Artículos relacionados

7 min

1330 palabras

Por fin: JavaScript moderno en NGINX (y podemos olvidarnos de LUA)

Cuando leí el anuncio de NGINX sobre el soporte de QuickJS en njs, no pude evitar sonreír. Por fin puedo dejar de pelearme con LUA.

Como alguien que ha configurado más servidores NGINX de los que puedo recordar (desde mis tiempos en Arrakis hasta ahora en Carto), siempre me ha molestado la limitación de tener que usar LUA para lógica compleja en NGINX. No es que LUA sea malo, pero… ¿por qué aprender otro lenguaje cuando ya domino JavaScript?