UPDATE: Certificado SSL con Let's Encrypt
24.07.2017 Linux Hosting Mini Posts Letsencrypt NginxEn la entrada sobre como instalar el certificado SSL con Let's Encrypt usaba la versión del certbot del repo de ubuntu. Ahora hay una versión más reciente disponible, su instalación es simple y tiene algunas ventajas que nos van a ser útiles.
Hay un par de pasos extras a realizar, pero nada muy complejo. Vamos a verlo:
Instalar Certbot
Como primer paso, debemos agregar el repositorio:
sudo add-apt-repository ppa:certbot/certbot
Y actualizar lista de paquetes:
sudo apt-get update
Una vez tenemos el repo actualizado, instalamos certbot:
sudo apt-get install certbot
Instalar Certificado
Suponiendo que ya tenemos configurados los vhosts en nginx, el próximo paso es pedir el certificado usando el certbot. Vamos a usar el flag certonly, porque las modificaciones a nginx las haremos manualmente después:
sudo certbot certonly --webroot --webroot-path=/var/www/example -d example.com -d www.example.com
Donde:
- certonly: solo pedimos el certificado, no queremos que el bot nos modifique configuraciones de nuestro servidor.
- webroot: Vamos a utilizar el plugin webroot para generar el certificado. Este plugin lo que hace es crear un archivo en nuestro sitio dentro de la carpeta .well-known, por lo que debemos asegurarnos que esta carpeta sea accesible desde la web (en la configuración por defecto de los servidores la carpeta será accesible).
- webroot-path: El path al web root, es decir donde están los archivos que servimos en nuestro sitio
- -d: el o los dominios para los cuales queremos extender el certificado. En este caso lo generamos para el dominio example.com con y sin el prefijo www.
Setear auto renovación
Los certificados de Let's Encrypt tienen una validez de 3 meses. Por este motivo, para evitar tener que recordar actualizarlos manualmente, lo mejor es agregar una entrada al crontab y dejar esto en manos del server. Vamos a editar el crontab del root (sudo crontab -e):
16 6 * * * /usr/bin/certbot renew --quiet --renew-hook "/bin/systemctl reload nginx"
Con esta instrucción dejamos seteado que todos los días a las 6:16AM se ejecute el certbot renew, en modo quiet (sin devolver info) y, en caso de renovarse el cert, que haga un reload al nginx para que lea el nuevo certificado.
A partir de aquí, recomiendo continuar con la configuración de nginx: https://embrolio.com/entry/certificado-ssl-con-let-s-encrypt-y-ajustes-a-nginx#configurar-nginx