GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo proteger el servidor web Apache con Let's Encrypt en RHEL 8

En un mundo en línea que está constantemente inundado de amenazas de seguridad, proteger su servidor web debe ser lo más importante en la mente de uno. Una de las formas de asegurar su servidor web es implementar el protocolo HTTPS en su sitio usando un certificado SSL/TLS. Un certificado SSL/TLS no solo protege su sitio mediante el cifrado de la información intercambiada entre el servidor web y los navegadores de los usuarios, sino que también ayuda en la clasificación de Google.

En esta guía, aprenderá a proteger el servidor web Apache (http) con Let's Encrypt SSL/TLS en RHEL 8.

Requisitos

Esto es lo que necesita antes de continuar:

  • Una instancia del servidor RHEL 8 con un usuario sudo configurado.
  • Un nombre de dominio completo (FQDN) que apunta a la dirección IP pública de su servidor. A lo largo de esta guía, utilizaremos el nombre de dominio linuxtechgeek.info.

Paso 1) Instalar Apache en RHEL 8

El primer paso es instalar el servidor web Apache. Dado que Apache ya existe en el repositorio de AppStream de Red Hat, puede instalarlo utilizando el administrador de paquetes DNF de la siguiente manera.

$ sudo dnf install -y httpd

Una vez instalado, inicie el servidor web Apache y habilítelo para que se inicie en el momento del arranque.

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Para verificar que Apache se está ejecutando, ejecute el comando:

$ sudo systemctl status httpd

Nota:En caso de que el firewall se esté ejecutando, permita los siguientes puertos de Apache en el firewall, ejecute

$ sudo firewall-cmd --add-port=80/tcp --permanent
$ sudo firewall-cmd --add-port=443/tcp –permanent
$ sudo firewall-cmd --realod

Ahora, puede dirigirse a su navegador web y explorar su dominio en la barra de URL.

Paso 2) Instalar Certbot

Certbot es un cliente de código abierto fácil de usar mantenido por EFF (Electronic Frontier Foundation). Obtiene el certificado TLS de Lets Encrypt y lo implementa en el servidor web. Al hacerlo, elimina la molestia y el dolor de implementar el protocolo HTTPS usando el certificado TLS.

Para instalar Certbot y los paquetes asociados, primero habilite EPEL (paquetes adicionales para Enterprise Linux).

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

A continuación, instale el paquete certbot y mod_ssl de la siguiente manera.

$ sudo dnf install certbot python3-certbot-apache mod_ssl

Paso 3) Cree un archivo de host virtual de Apache

Los servidores virtuales permiten alojar múltiples dominios en un solo servidor web.

El primer paso es crear un directorio dentro de la raíz del documento donde irán todos los archivos del sitio web.

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

Establezca la propiedad del directorio para el usuario de Apache.

$ sudo chown -R apache:apache /var/www/linuxtechgeek.info/html

Asegúrese de configurar los permisos del directorio como se muestra.

$ sudo chmod -R 755 /var/www

Con el directorio del dominio en su lugar con toda la propiedad y los permisos establecidos, crearemos un archivo de host virtual en el directorio /etc/httpd/conf.d/.

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

Pegue las siguientes líneas y tenga cuidado de usar su propio nombre de dominio.

<virtualhost *:80>
ServerName linuxtechgeek.info
ServerAlias www.linuxtechgeek.info
DocumentRoot /var/www/linuxtechgeek.info/html
ErrorLog /var/log/httpd/linuxtechgeek.info-error.log
CustomLog /var/log/httpd/linuxtechgeek.info-access.log combined
</virtualhost>

Guarde y salga del archivo virtualhost.

Para probar si el servidor virtual está funcionando, crearemos un archivo HTML de muestra en el directorio del sitio web.

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

Pegue el siguiente contenido de muestra. Siéntete libre de modificarlo según tus preferencias.

<!DOCTYPE html>
<html>
     <body>
         <h1> Welcome to Linuxtechi virtualhost </h1>
      </body>
</html>

Guarde y salga del archivo HTML. Para guardar todos los cambios realizados, reinicie el servidor web Apache.

$ sudo systemctl restart httpd

Ahora, explore su dominio una vez más, y esta vez, en lugar de la página de bienvenida predeterminada de Apache, debería ver la página HTML personalizada que acaba de configurar. Esta es una prueba de que el archivo de host virtual está funcionando.

Paso 4) Apache seguro con el certificado Let's Encrypt

El último paso es obtener e implementar el certificado Let's Encrypt. Para hacer esto, simplemente ejecute el comando:

$ sudo certbot --apache

Cuando se ejecuta el comando, certbot lo guiará a través de una serie de indicaciones. Se le pedirá su dirección de correo electrónico y se le pedirá que acepte los Términos y condiciones. También se le preguntará si desea recibir correos electrónicos periódicos sobre noticias de EFF y campañas sobre libertad digital.

Cuando se le soliciten los nombres para activar HTTPS, simplemente presione ENTRAR para aplicar el certificado a todos los dominios proporcionados. 

Certbot procederá a obtener el certificado TLS de Let's Encrypt y lo implementará en su servidor web. Luego, Certbot imprimirá la ruta donde se guardaron el certificado y la clave, así como la ruta de implementación del certificado para sus dominios.

Para verificar que Let's encrypt se implementó con éxito, actualice su navegador. Esta vez, notará un icono de candado al comienzo de la barra de URL que indica que el sitio se ha cifrado correctamente.

Puede hacer clic en el icono del candado para obtener más detalles

Además, puede realizar una prueba ssl en ssl labs para verificar digitalmente su certificado. Si todo salió bien, deberías obtener una calificación A.

Paso 5) Renovación del certificado Let's Encrypt

El certificado de Let's Encrypt es válido solo por 90 días. Unas semanas antes del vencimiento, normalmente recibirá una notificación de EFF sobre el vencimiento inminente del certificado y la necesidad de renovar su certificado.

Puede renovar manualmente el certificado ejecutando el comando:

$ sudo certbot renew

Para simular la renovación del certificado, ejecute el comando:

$ sudo certbot renew --dry-run

Esto simplemente imita la renovación real del certificado y no realiza ninguna acción.

Para automatizar la renovación del certificado, abra el archivo crontab

$ crontab -e

Especifique el trabajo cron a continuación que se ejecutará cada medianoche.

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

Conclusión

Esperamos que ahora pueda implementar sin problemas el certificado Let's Encrypt en RHEL para proteger el servidor web Apache.

Lea también :Cómo fortalecer y asegurar el servidor web NGINX en Linux


Linux
  1. Cómo configurar un servidor web Apache

  2. Cómo configurar varios sitios web con el servidor web Apache

  3. Cómo instalar Let's Encrypt en Ubuntu 20.04 con Apache

  4. Cómo asegurar Apache con Lets Encrypt en Ubuntu 18.04

  5. Cómo proteger su servidor Ubuntu con CSF Firewall

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

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

Cómo comparar el rendimiento del servidor web con Apache Bench

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

Cómo proteger Nginx con Let's Encrypt en Ubuntu 20.04

Cómo proteger Apache con Let's Encrypt en Ubuntu 20.04