DevOps

Cómo asegurar Nginx con Let’s Encrypt en Ubuntu 18.04

By 31 July, 2019 No Comments

Let’s Encrypt es una Autoridad Certificadora (CA) que provee una manera sencilla de obtener e instalar de manera gratuita certificados TLS/SSL, por lo tanto, habilitaría el HTTPS en servidores web. Además, simplifica el proceso, ya que provee un software cliente, Certbot, que automatiza la mayoría (si no todos) los pasos requeridos. Actualmente, todo el proceso de la obtención e instalación de un certificado se encuentra completamente automatizada tanto para Apache como para Nginx.

En este tutorial, usarás Certbot para obtener un certificado SSL gratuito que podrá ser usado en Nginx, instalado en Ubuntu 18.04 y configurado de tal manera que su renovación se realizará de forma automática.

Primero, adiciona el repositorio:

$ sudo add-apt-repository ppa:certbot/certbot

Necesitarás presionar Enter para aceptar. Luego, actualiza la lista de paquetes para recolectar la información de los paquetes del nuevo repositorio:

$ sudo apt update

Y finalmente, instala el paquete Nginx de Certbot con el apt:

$ sudo apt install python-certbot-nginx

Ahora, Certbot está listo para ser usado, pero para configurar el SSL para trabajar con Nginx, necesitamos verificar la configuración de él.

Certbot necesita estar habilitado para encontrar el bloque de servidor en tu configuración de Nginx, de tal manera que que pueda configurar el SSL de forma automática. Específicamente, lo hace mediante la búsqueda de la directiva server_name que contiene el dominio del cual solicitaste el certificado.

Deberías tener un bloque de servidor para tu dominio en /etc/nginx/sites-available/example.com con la directiva server_name ya asignada apropiadamente.

$ sudo nano /etc/nginx/sites-available/example.com 

server_name example.com www.example.com;

$ sudo nginx -t

Si se despliega un error, abre de nuevo el archivo y recórrelo en la búsqueda de caracteres faltantes o de errores tipográficos. Tan pronto como la sintaxis de tu archivo de configuración sea la correcta, recarga Nginx para activar la nueva configuración:
$ sudo systemctl reload nginx
Certbot provee diferentes maneras para obtener certificados SSL. Al usar el conector a Nginx, éste se encargará de reconfigurarlo, así como también, de recargar la configuración en caso de ser necesario. Para usar este conector, digita lo siguiente:
$ sudo certbot –nginx -d example.com -d www.example.com
Los certificados de Let’s Encrypt son válidos por noventa días únicamente. Esto se hace con el fin de incentivar a los usuarios para que automaticen el proceso de renovación de certificados. El paquete certbot que instalamos ya se ha ocupado de adicionar un archivo de comandos de renovación en /etc/cron.d. Este archivo de comandos se ejecuta dos veces al día y renovará automáticamente los certificados que presenten una fecha de expiración dentro de los siguientes treinta días.

Para probar el proceso de renovación, puedes hacer un ensayo mediante certbot:

$ sudo certbot renew –dry-run

Ahora si! tienes algo (un poquito) más seguro.

Leave a Reply