GNU/Linux >> Tutoriales Linux >  >> Debian

Asegure Nginx con Let's Encrypt SSL en Debian 10/11

Resumen

En la siguiente publicación, cubriremos el procedimiento para proteger Nginx con Let's Encrypt SSL en una máquina Debian 10 (este procedimiento también se puede aplicar en Debian 11). La publicación mostrará el escenario, donde necesitamos instalar certbot en nuestra máquina Debian y obtener el certificado SSL de Let's Encrypt, configurar la redirección automática de HTTPS y probar también la renovación del certificado. Aquí ya tenemos una máquina Debian con Nginx preinstalado en la que seguiremos los pasos sobre cómo asegurar nginx con let's encrypt ssl.

Requisitos

1.. Registrado y válido un nombre de dominio apuntando a su servidor Debian.

2. Servidor Debian 10 (o servidor Debian 11)

3.. Servidor web Nginx instalado y funcionando

4.. Configuración del cortafuegos (abrir puertos HTTP y HTTPS)

Si tiene un firewall UFW o IPTABLES, debe configurarlos para que abran los puertos 80 y 443 para HTTP y HTTPS para no solo alojar su sitio web

UFW

sudo ufw allow http
sudo ufw allow https

IPTABLES

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

or

sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Instalación de bots certificados

Usaremos la herramienta Cerbot de Let's Encrypt para obtener el certificado SSL y el complemento Nginx para certbot también. Ambas herramientas nos ayudarán a obtener el certificado de forma muy sencilla, rápida y además realizar los cambios de configuración necesarios sobre Nginx. Además de eso, las herramientas tienen funciones de automatización, por lo que al vencimiento de SSL, pueden renovar e instalar el certificado nuevamente.

sudo apt install certbot python3-certbot-nginx

Adquirir el certificado SSL de Let's Encrypt

Una vez que haya confirmado que los puertos en el firewall están abiertos y haya terminado con la instalación de certbot. Para adquirir el certificado SSL de Let's encrypt solo necesitamos ejecutar el comando:

sudo certbot --nginx -d yourdomain.com

Una nota:antes de ejecutar el comando, primero es necesario en su archivo de configuración nginx, escriba en el parámetro server_name el nombre de dominio real que apuntó a su servidor. Certbot buscará en la configuración de bloqueo de su servidor ese parámetro y creará los archivos de configuración de cifrado de acuerdo con ese parámetro. Ejemplo en una imagen a continuación:

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

Cuando ejecute este comando, se iniciará el asistente de certbot. Si está ejecutando el cerbot por primera vez, primero le pedirá que proporcione una dirección de correo electrónico para usar como contacto y que acepte los términos de la licencia de Let's encrypt.

Después de eso, ejecutará el desafío http, obtendrá el certificado y al final le preguntará si desea que configure de inmediato la redirección https, que también es una buena opción.

Tan pronto como se complete la configuración de redirección, el nuevo dominio con certificado SSL debería funcionar de inmediato.

Configurar y probar la renovación automática

Los certificados de Let's Encrypt tienen una validez predeterminada de tres meses y la renovación automática de cerbot está configurada para renovar el certificado al menos una vez, cuando el certificado tiene menos de 30 días de validez. Una vez que se adquiere el certificado SSL, válido y activo, duplica si el servicio de temporizador del certbot está activo y en ejecución y prueba el proceso de renovación con la opción de ejecución en seco:

sudo systemctl status certbot.timer

sudo certbot renew --dry-run

Comprueba la configuración de Nginx

Puede volver a verificar la configuración de nginx si el cerbot ha escrito con éxito la configuración para los certificados SSL y para la redirección de HTTPS. Cerbot reiniciará el nginx una vez que haya terminado con la configuración, debe tener su dominio/sitio web protegido y funcionando con el SSL activo.

Resumen

Para resumir, repasamos los pasos para asegurar Nginx con Let's Encrypt SSL en la máquina Debian 10 y también en la máquina Debian 11. Utilizamos la herramienta certbot de let's encrypt para las solicitudes de certificados SSL y su renovación automática. Afortunadamente para certbot y su complemento nginx, el proceso es realmente simple, directo y rápido de completar. Una sugerencia sobre esto es:sería una buena opción tener una copia de seguridad de la carpeta let's encrypt y tener una copia de seguridad frecuente (como ha sugerido el propio certbot). Por supuesto, esto es opcional y depende de cómo haya establecido la frecuencia de renovación de certificados.

El servicio Ciframos, aunque es gratuito y muy popular entre el mundo tecnológico, es una buena opción para proteger algunos tipos de sitios web. Sin embargo, no se recomienda el uso de sus certificados gratuitos en sitios web de comercio electrónico para un ejemplo o cualquier tipo de sitio que necesite pasar y almacenar datos muy confidenciales (tarjetas de crédito y similares). Es por eso que por defecto se recomienda tener un tiempo de renovación corto para los certificados SSL. En ese sentido, Let's encrypt no es la única opción gratuita para usar. Cloudflare tiene la misma opción para proporcionar SSL gratuitos y también se puede usar para proteger su sitio web Nginx. Si te interesa esta opción, puedes consultar la publicación en este enlace.


Debian
  1. Asegure Nginx con Lets Encrypt en CentOS 7

  2. Asegure Nginx con Lets Encrypt en Debian 9

  3. Asegure Apache2 con Let's Encrypt SSL en Debian 10/11

  4. Instalar WordPress con Nginx en Debian 10/11

  5. Cómo proteger Nginx con SSL y Let's Encrypt en FreeBSD

Cómo instalar WordPress con Nginx y Let's Encrypt SSL en Debian 11

Cómo configurar el certificado Let's Encrypt SSL con Nginx en Ubuntu 18.04 y Ubuntu 16.04

Instale y configure Webmin con el certificado Let's Encrypt SSL gratuito en Debian 10

Cómo proteger Apache con el certificado Let's Encrypt SSL en CentOS 8

Proteja Nginx con el certificado Let's Encrypt SSL en Ubuntu 18.04

Cómo proteger Nginx con el certificado SSL de Let's Encrypt