nginx + letsencrypt (HTTPS)


Lo más sencillo para tener un sitio seguro por HTTPs y sin dejarnos un duro es instalar nginx y crear un certificado con Let’s Encrypt. Encima usando HTTP2.

Recordemos que hay que editar la configuración relevante a emails y los dominios en si.

Instalamos cosas básicas:

$ sudo apt install nginx letsencrypt
$ mkdir -p /var/www/letsencrypt/.well-known/acme-challenge

Creamos el archivo de configuración del letsencrypt en /etc/letsencrypt/webroot.ini:

Un par de archivos en el nginx que incluiremos en cada vhost. Este en /etc/nginx/snippets/letsencrypt.conf:

Y este en /etc/nginx/snippets/ssl.conf:

Y para acabar un vhost básico, en /etc/nginx/sites-available/dominio.com.conf:

$ ln -s /etc/nginx/sites-available/dominio.com.conf /etc/nginx/sites-enabled/dominio.com.conf

Reiniciamos el nginx y creamos el certificado (puede que pete el vhost por la ruta de los certificados, se pueden comentar por ahora):

$ sudo systemctl restart nginx
$ letsencrypt -c /etc/letsencrypt/webroot.ini -d domain.com certonly

A mayores podemos crear un cron para renovar los certificados:

@daily ~/opt/letsencrypt/letsencrypt-auto renew --renew-hook "systemctl restart nginx"

Para ver que todo está OK se puede comprobar la configuración en esta url:

Para información más detallada se puede echar un ojo a este Gist.