GNU/Linux >> Tutoriales Linux >  >> Rocky Linux

Cómo instalar Let's Encrypt SSL para NGINX en Rocky Linux 8

La seguridad es una de las principales preocupaciones de los propietarios de sitios web, especialmente si tiene una tienda de comercio electrónico o un sitio que acepta información confidencial de los usuarios, como nombres de usuario y contraseñas. El protocolo HTTP simple es inseguro ya que los datos se envían en texto simple y los piratas informáticos pueden espiar la comunicación enviada hacia y desde el servidor web.

Para superar este riesgo, se recomienda proteger un servidor web mediante un certificado TLS/SSL. Este es un certificado digital criptográfico que encripta su servidor web y asegura que los datos intercambiados con el servidor web estén encriptados.

El certificado Let's Encrypt SSL es un certificado digital proporcionado por Let's Encrypt CA (Autoridad de certificación) para proteger un servidor web. Es un certificado TLS/SSL gratuito que es válido solo por 90 días, después de lo cual se requiere la renovación antes de que caduque. Es beneficioso para las empresas emergentes o las personas que no pueden pagar un certificado SSL premium para sus blogs o sitios web.

En esta guía, demostraremos cómo puede instalar el certificado Let's Encrypt SSL/TLS para NGINX en Rocky Linux 8

Lo que necesitas

Primero, asegúrese de tener una instancia del servidor Rocky Linux 8 en la nube o local y ya configurado con un usuario sudo.

A continuación, asegúrese de tener un Nombre de dominio completo (FQDN) que apunte a la IP pública de su servidor. Para lograr esto, diríjase a su registrador de dominio y, en la configuración de DNS, configure el registro A para apuntar el nombre de dominio a la IP pública del servidor. A continuación se muestra un fragmento de mi registro A.

Para esta guía, estamos usando el nombre de dominio linuxtechgeek.info que apunta a la dirección IP del servidor 34.134.239.201.

Con eso fuera del camino, ¡comencemos!

Paso 1)  Instalar el servidor web Nginx

Comenzamos con la instalación del servidor web Nginx en Rocky 8. Pero primero, actualicemos el paquete del sistema y actualicemos los repositorios.

$ sudo dnf update

La actualización puede tardar un poco, así que tenga paciencia hasta que se complete.

Una vez que se complete la actualización, reinicie el sistema una vez y luego instale el servidor web nginx de la siguiente manera:

$ sudo dnf install nginx

De forma predeterminada, nginx no se inicia automáticamente. Entonces, haga un esfuerzo adicional e inicie el servicio nginx.

$ sudo systemctl start nginx

A continuación, habilite el servidor web para que se inicie en el momento del arranque o al reiniciar.

$ sudo systemctl enable nginx

El servidor web ahora debería estar funcionando como se esperaba y escuchando en el puerto 80. Puede confirmarlo ejecutando el comando

$ sudo systemctl status nginx

También puede verificar esto desde un navegador web. Pero primero, permita el tráfico HTTP (tanto HTTP como HTTPS) en el cortafuegos ejecutando los comandos que se muestran

$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

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

$ sudo firewall-cmd --reload

Luego busque la dirección IP o el nombre de dominio de su servidor

http://nombre_de_dominio

Paso 2) Cree una raíz de documento para el dominio

Terminamos de instalar el servidor web. El siguiente paso es crear un directorio que acomodará los archivos del dominio. Crearemos el directorio del dominio en la ruta linuxtechgeek.info como se muestra usando el comando mkdir

$ sudo mkdir -p /var/www/linuxtechgeek.info/html

La raíz del documento del dominio es donde encontrará los archivos del sitio web, incluidos HTML, CSS, JavaScript e imágenes. Para propósitos de demostración, vamos a crear un archivo index.html simple.

$ sudo vi /var/www/linuxtechgeek.info/html/index.html

A continuación, pegue el siguiente código HTML de muestra y guarde los cambios.

<!DOCTYPE html>
<html>
    <head>
        <title>Welcome to linuxtechgeek.info</title>
    </head>
    <body>
  <h1>Hey Guys! Our Nginx server block is working.</h1>
    </body>
</html>

Luego, use el comando chown para establecer la propiedad del directorio del dominio de la siguiente manera para evitar problemas de permisos.

$ sudo chown -R nginx /var/www/linuxtechgeek.info/

A continuación, configure los permisos de modo que los usuarios globales y de grupo tengan derechos de lectura y ejecución de los archivos del dominio.

$ sudo chmod -R 755 /var/www/linuxtechgeek.info/

Hemos terminado de configurar la raíz del documento para el dominio y establecer la propiedad y los permisos correctos. Procedamos y configuremos el archivo de bloqueo del servidor.

Paso 3)  Crear bloque de servidor Nginx

Un bloque de servidor Nginx es el equivalente a un host virtual apache. El bloque del servidor es donde define la configuración del sitio y le indica al servidor web nginx dónde ubicar los archivos del dominio.

El archivo de configuración del bloque del servidor se crea en el directorio /etc/nginx/conf.d. Crearemos el nuestro en el mismo directorio de la siguiente manera.

$ sudo vi /etc/nginx/conf.d/linuxtechgeek.info.conf

Copia y pega las siguientes líneas. Asegúrese de sustituir el nombre de dominio linuxtechgeek.info con su propio dominio.

server {
    listen 80;
    server_name linuxtechgeek.info www.linuxtechgeek.info;
    root /var/www/linuxtechgeek.info/html;
    index index.php index.html index.htm;
    access_log /var/log/nginx/linuxtechgeek.info.access.log;
    error_log /var/log/nginx/linuxtechgeek.info.error.log;
}

Guarde los cambios y salga del archivo de bloqueo del servidor.

Luego confirme que todas las configuraciones de Nginx estén bien. Si todo está bien, debería mostrarse el resultado.

$ sudo nginx -t

Para que Nginx esté al tanto de todos los cambios, incluida la raíz del documento del dominio y el archivo de bloqueo del servidor, reinicie el servidor web.

$ sudo systemctl restart nginx

Luego confirme el estado de ejecución de Nginx.

$ sudo systemctl status nginx

Luego, configure SELinux en modo permisivo usando el comando:

$ sudo setenforce permissive

Para confirmar que está configurado en modo permisivo, ejecute el comando:

$ sudo getenforce

Ejecute debajo del comando sed para establecer permanentemente el modo selinux como permisivo.

$ sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/sysconfig/selinux

Para confirmar que el archivo de bloqueo del servidor se ha configurado correctamente, una vez más, busque su nombre de dominio.

http://nombre_de_dominio

Debería obtener una confirmación positiva como se muestra a continuación.

Paso 4)  Instalar Certbot

El único paso que queda es instalar Let's Encrypt y asegurar el servidor web Nginx. Sin embargo, para lograr esto, necesitamos instalar certbot. Escrito en Python y desarrollado por Electronic Frontier Foundation, Certbot es un cliente con todas las funciones para Let's Encrypt CA. Se ejecuta en el servidor web y le permite configurar automáticamente un certificado SSL para su servidor web con un solo comando.

Primero, instale el repositorio EPEL que proporciona paquetes adicionales y de alta calidad para distribuciones basadas en RHEL.

$ sudo dnf install -y epel-release

Una vez instalado, instale certbot y el módulo certbot para Nginx.

$ sudo dnf install certbot python3-certbot-nginx

Esto instala certbot, módulo de certbot para host Nginx de otros paquetes y dependencias.

Paso 4)  Instala el certificado Let's Encrypt SSL/TLS

Finalmente, ejecute el cliente certbot para instalar el certificado SSL

$ sudo certbot --nginx

Esto lo lleva a través de una serie de indicaciones. Primero, proporcione la dirección de correo electrónico que utilizará EFF para enviarle actualizaciones de seguridad y renovación. Luego acepte los Términos de servicio presionando 'Y'. Si lo desea, puede presionar 'Y' para permitir que EFF le envíe actualizaciones periódicas sobre sus esfuerzos para proteger la web, las noticias y las campañas. Finalmente, seleccione los nombres de dominio para cifrar. En nuestro caso, presionamos el botón 'ENTER' para seleccionar todos los nombres de dominio.

Certbot obtendrá el certificado SSL/TLS y lo implementará para los nombres de dominio especificados. Esto habilita el protocolo HTTPS para su dominio, cifrando de hecho el tráfico intercambiado con el servidor web.

Para confirmar que HTTPS se ha habilitado, regrese a su navegador y vuelva a cargarlo. Esta vez, notará un ícono de candado en la barra de URL, una indicación de que el sitio está encriptado.

Haga clic en el icono y luego seleccione 'Certificado'.

Esto muestra los detalles del certificado tal como se proporcionan

Además, puede probar el estado de su servidor web en SSL Labs, que es un sitio que realiza un análisis profundo de un servidor web a través de Internet. Debería obtener una calificación A como se muestra.

Paso 5) Administrar la renovación del certificado SSL

El certificado de Let's Encrypt es válido por 90 días, sin embargo, Let's Encrypt recomienda que renueve el certificado cada 60 días. Se le enviarán notificaciones por correo electrónico en los últimos 20 días antes de que caduquen con una frecuencia creciente de los últimos 10 días.

Puede renovar manualmente el certificado de la siguiente manera.

$ sudo certbot renew

Afortunadamente, puede automatizar la renovación agregando un nuevo trabajo cron. Entonces, abre el archivo crontab.

$ crontab -e

Y agregue la línea que se muestra. Guarde los cambios y salga.

0 0 * * * /usr/bin/certbot renew > /dev/null 2>&1

Eso es todo. Gracias por llegar hasta aquí. Hemos demostrado cómo puede instalar el certificado Let's Encrypt SSL para Nginx en Rocky Linux 8.

Leer también :Cómo configurar NGINX de alta disponibilidad con KeepAlived en Linux


Rocky Linux
  1. Cómo instalar MariaDB 10.6 en Rocky Linux 8

  2. Cómo instalar Docker en Rocky Linux 8

  3. Cómo instalar Cockpit en Rocky Linux 8

  4. Cómo instalar Varnish 7 para Nginx en Rocky Linux 8

  5. Cómo instalar MariaDB en Rocky Linux 8

Cómo instalar Nginx con Let's Encrypt SSL en Ubuntu 20.04 LTS

Cómo instalar Nginx en Rocky Linux 8

Cómo instalar PostgreSQL en Rocky Linux 8

Cómo instalar cactus en Rocky Linux 8

Cómo instalar Joomla en Rocky Linux 8

Cómo instalar Fail2ban en Rocky Linux 8