Búsqueda de sitios web

Cómo instalar un certificado SSL gratuito para Nginx en Debian 10


Al configurar un sitio web, una de las consideraciones clave que debe tener en cuenta es la seguridad de su sitio. Un certificado SSL es un certificado digital que cifra los datos que se envían desde el navegador de un usuario a un servidor web. De esta manera, los datos enviados son confidenciales y están a salvo de los piratas informáticos que utilizan rastreadores de paquetes como Wireshark para interceptar y espiar sus comunicaciones.

Un sitio cifrado tiene un símbolo de candado en la barra de URL seguido del acrónimo https como se muestra en la siguiente captura de pantalla.

Un sitio no cifrado suele tener una notificación "No seguro" en la barra de URL.

Requisitos previos

Antes de comenzar, asegúrese de que se hayan cumplido los siguientes requisitos:

  1. Una instancia en ejecución de Debian 10 Minimal Server.
  2. Una instancia en ejecución de Nginx Web Server con configuración de dominio en Debian 10.
  3. Un Nombre de dominio completo (FQDN) registrado con el registro A que apunta a la dirección IP de Debian 10. en su Proveedor de Dominio.

Para este tutorial, hemos apuntado linux-console.net a la dirección IP 192.168.0.104.

En este artículo, examinamos cómo puede instalar Let's Encrypt SSL en Debian 10 para obtener un Certificado SSL gratuito para Nginx. fuerte> sitio alojado.

¿Qué es Let's Encrypt SSL?

Let's Encrypt SSL es un certificado gratuito de EFF (Electronic Frontier Foundation) que es válido por 3 meses y se renueva automáticamente al vencimiento. Es una forma fácil y económica de cifrar su sitio si tiene los bolsillos ajustados.

Sin mucho más preámbulos, profundicemos e instalemos Let's Encrypt en el servidor web Nginx:

Paso 1: instale Certbot en Debian 10

Para comenzar, necesitamos instalar Certbot, un software que obtiene el certificado digital Let's encrypt y luego lo implementa en un servidor web. Para lograr esto, necesitamos instalar el paquete python3-certbot-nginx. Pero antes de hacerlo, primero actualicemos los paquetes del sistema.

sudo apt update

El siguiente paso es instalar las dependencias requeridas por el paquete python3-certbot-nginx.

sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

Ahora instalemos el paquete python3-certbot-nginx.

sudo apt install python3-certbot-nginx

Paso 2. Verificar la configuración del bloque del servidor Nginx

Para que certbot implemente automáticamente el certificado Let's encrypt SSL en el servidor web Nginx, se debe configurar un bloque de servidor. Cubrimos la configuración de los bloques del servidor Nginx en la última sección del artículo anterior.

Si lo siguió con atención, debería tener un bloque de servidor en /etc/nginx/sites-available/some_domain. En nuestro caso, el bloque del servidor Nginx será

/etc/nginx/sites-available/linux-console.net

Además, asegúrese de que la directiva server_name corresponda a su nombre de dominio.

server_name linux-console.net linux-console.net;

Para confirmar que todas las configuraciones de Nginx estén en orden, ejecute:

sudo nginx -t

El resultado anterior indica que todo está bien.

Paso 3: configurar el firewall para abrir el puerto HTTPS

En caso de que tengas ufw configurado y habilitado, como siempre se recomienda, debemos permitir el protocolo HTTPS a través del firewall para que el servidor web sea accesible para todos.

sudo ufw allow 'Nginx Full'

A continuación, vuelva a cargar el firewall para efectuar los cambios.

sudo ufw reload

Para comprobar que hemos permitido el protocolo a través del firewall.

sudo ufw status

Paso 4: Implementación del certificado SSL Let's Encrypt para el dominio

Con todos los ajustes y configuraciones controlados, es hora de buscar e implementar el certificado Let's Encrypt SSL en el sitio del dominio.

sudo certbot --nginx -d domain-name  -d www.domain-name.com 

En nuestro caso tendremos

sudo certbot --nginx -d linux-console.net -d linux-console.net

En el primer paso, se le pedirá que ingrese su dirección de correo electrónico. Escriba su dirección y presione Intro.

A continuación, se le pedirá que acepte los términos de servicio. Escriba A para continuar.

Certbot procederá a solicitar su consentimiento para utilizar su correo electrónico para enviarle notificaciones sobre los últimos desarrollos en EFF. Aquí puede optar por participar o no; para participar, escriba Y (Sí) y presione Entrar. Para rechazar la participación, presione N (No).

Certbot luego se comunicará con Let's encrypt, descargará el certificado SSL y lo implementará en el bloque del servidor Nginx que ya creó.

En la siguiente sección, escriba 2 para redirigir el tráfico HTTP habitual a HTTPS.

El certificado se implementará en su servidor Nginx y recibirá una notificación de felicitación para confirmar que su servidor web ahora está cifrado mediante Let's Encrypt SSL.

Paso 5: verificar HTTPS en el sitio web de Nginx

Para verificar los cambios a través de un navegador web, actualice la pestaña de su navegador y asegúrese de notar el símbolo del candado.

Haga clic en el icono del candado y seleccione la opción "Certificado" para ver los detalles del certificado SSL.

Se mostrarán todos los detalles del certificado.

Puede verificar aún más el estado de su servidor web probando la URL de su sitio en https://www.ssllabs.com/ssltest/. Si el servidor web está cifrado mediante un certificado SSL, obtendrá una puntuación A como se muestra.

Conclusión

Hemos llegado al final de este tutorial. En la guía, aprendió cómo instalar un certificado SSL gratuito para Nginx en Debian 10.