Configuración básica de Ubuntu Server para servicios web

Creando certificados SSL

Let's Encrypt es una Autoridad de Certificación que proporciona una manera fácil de obtener e instalar certificados TLS/SSL gratuitos para habilitar las conexiones HTTPS cifradas en los servidores web.

Simplifica el proceso al proporcionar un cliente de software llamado Certbot que intenta automatizar la mayoría de los pasos necesarios para obtener e instalar el certificado en los servidores Apache y Nginx.

En esta lección utilizaremos Certbot para obtener un certificado SSL gratuito, lo configuraremos para que funcione en nuestro dominio usando Nginx y haremos que se renueve automáticamente, ya que por defecto tienen una duración de 90 días.

Empezaremos instalando Certbot:

sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-nginx

Con esto tendremos Certbot listo para funcionar con Nginx.

Ahora es vital comprobar que tenemos tanto el dominio raiz como el subdominio www configurados en el mismo bloque de servidor:

sudo nano /etc/nginx/sites-available/hektorprofe.tk

Apareciéndonos ambos en la línea del server_name:

/etc/nginx/sites-available/hektorprofe.tk

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Si lo tenemos bien podemos continuar añadiendo permiso al cortafuegos para que Nginx pueda funcionar tanto por HTTP como HTTPS:

sudo ufw status
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
sudo ufw status

Si en la lista nos aparece Nginx Full ya tendremos bien.

Ahora vamos a generar los certificados SSL para nuestro dominio raíz y su subdominio www:

sudo ufw st
sudo certbot --nginx -d hektorprofe.tk -d www.hektorprofe.tk

Eventualmente tendremos que indicar si queremos redireccionar todas las peticiones a HTTPS, os recomiendo hacerlo así que podéis poner un 1.

En este punto el certificado estará descargado, instalado y cargado en Nginx, lo último que nos falta es verificar que el servicio de renovación automática está funcionando:

sudo certbot renew --dry-run

Si no devuelve ningún error significa que tenemos configurado el servicio de renovación automático correctamente así que ya hemos acabado. Sólo nos falta reiniciar Nginx:

sudo nginx -t
sudo systemctl restart nginx

Y comprobar si al aceder al sitio nos carga el certificado correctamente:

https://www.hektorprofe.tk

Tutoriales útiles de Certbot