05 July 2016

Certificado emitido por Let’s Encrypt con nuevo cliente Certbot

https://letsencrypt.readthedocs.io/en/latest/#

Instalar el cliente Certbot

Visitar https://certbot.eff.org/ para ver si hay algún paquete para el SO destino.

En Fedora 21 lo he instalado así:

En /usr/local/bin

root# wget https://dl.eff.org/certbot-auto
root# chmod a+x certbot-auto

Opciones de la línea de comandos:

certbot --help all

https://certbot.eff.org/docs/using.html#command-line-options

El plugin webroot permite crear y renovar el certificado sin parar Nginx. Ver info en http://letsencrypt.readthedocs.io/en/latest/using.html#webroot

Crear el certificado SSL la primera vez

certbot-auto certonly --webroot -w /var/www/nomaspapeles/shared/public -d nomaspapeles.com -d www.nomaspapeles.com --email admin@example.com --agree-tos

El plugin webroot crea un archivo temporal en ${webroot-path}/.well-known/acme-challenge. webroot-path es el path del parámetro -w. Luego, el servidor de validación de Let’s Encrypt realiza petición HTTP para validar que el DNS del dominio de cada petición dirige al servidor que está ejecutando Certbot. Por eso, nginx debe permitir el acceso a ese directorio.

Configuración de Nginx

server {
....

    ssl on;

# certificate managed by letsencrypt
# See: https://letsencrypt.readthedocs.org/en/latest/using.html#renewal
    ssl_certificate_key /etc/letsencrypt/live/nomaspapeles.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/nomaspapeles.com/chain.pem;
    ssl_certificate /etc/letsencrypt/live/nomaspapeles.com/fullchain.pem;


    root         /var/www/nomaspapeles/shared/public;
    # aqui, certbot crea directorio .well-known necesario para la validación del certificado.

    location ~ /.well-known/  {
            allow all;
    }

Renovación

Añadir la siguiente línea a crontab

00 01 01 * * certbot-auto renew

El certificado sólo dura 90 días. Certbot renueva el certificado si faltan menos de 30 días para su caducidad.