Búsqueda de sitios web

Proteja Apache con el certificado SSL Lets Encrypt en CentOS 8


Proteger su servidor web es siempre uno de los factores clave que debe considerar antes de poner en marcha su sitio web. Un certificado de seguridad es fundamental para proteger el tráfico enviado desde los navegadores web a los servidores web y, al hacerlo, inspirará a los usuarios a intercambiar datos con su sitio web con pleno conocimiento de que el tráfico enviado está seguro.

En la mayoría de los casos, los certificados de seguridad se pagan y renuevan anualmente. El certificado Let's Encrypt es una autoridad de certificación gratuita, abierta y automatizada que puede utilizar para cifrar su sitio. El certificado caduca cada 90 días y se renueva automáticamente sin coste alguno.

Lectura recomendada: Cómo proteger Nginx con Let's Encrypt en CentOS 8

En este artículo te mostraremos cómo puedes instalar el Certificado Let's Encrypt con Certbot para el servidor web Apache y posteriormente configurar el certificado. para renovar automáticamente en CentOS 8.

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente en su lugar:

1. Una instancia del servidor CentOS 8 con el servidor web Apache HTTP instalado y en ejecución. Puede confirmar que su servidor web Apache está en funcionamiento.

sudo dnf install httpd
sudo systemctl status httpd

2. Un Nombre de dominio completo (FQDN) que apunta a la dirección IP pública de su servidor web en su proveedor de alojamiento web DNS. Para esta guía, usaremos linuxtechwhiz.info apuntando a la IP del servidor 34.67.63.136.

Paso 1. Instale Certbot en CentOS 8

Certbot es un cliente que automatiza la instalación del certificado de seguridad. Obtiene el certificado de Let's Encrypt Authority y lo implementa en su servidor web sin muchos problemas.

Certbot es totalmente gratuito y le permitirá instalar el certificado de forma interactiva generando instrucciones basadas en la configuración de su servidor web.

Antes de descargar el certbot, primero instale los paquetes necesarios para la configuración de una conexión cifrada.

Comenzaremos instalando el repositorio EPEL que proporciona paquetes adicionales de alta calidad para sistemas basados en RHEL:

sudo dnf install epel-release

A continuación, instale los paquetes mod_ssl y openssl.

sudo dnf install mod_ssl openssl

Una vez instaladas todas las dependencias, instale Certbot y el módulo Apache para Certbot.

sudo dnf install certbot python3-certbot-apache

El comando instala Certbot, el módulo Apache para Certbot y otras dependencias.

Paso 2: cree un host virtual Apache

El siguiente paso será crear un archivo de host virtual para nuestro dominio: linuxtechwhiz.info. Comience creando primero la raíz del documento donde colocará sus archivos HTML.

sudo mkdir /var/www/linuxtechwhiz.info.conf

Cree un archivo de prueba index.html como se muestra.

sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html

A continuación, cree un archivo de host virtual como se muestra.

sudo vim /etc/httpd/conf.d/linuxtechwhiz.info

Agregue la configuración a continuación.

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>

Guardar y Salir.

Asigne los permisos a la raíz del documento como se muestra.

sudo chown -R apache:apache /var/www/linuxtechwhiz.info

Para que los cambios entren en vigor, reinicie el servicio Apache.

sudo systemctl restart httpd

Paso 3: Instale el certificado SSL Let's Encrypt en CentOS 8

Ahora ejecute certbot como se muestra para comenzar la instalación del certificado Let's Encrypt.

sudo certbot --apache -d domain.com

En nuestro caso, este será:

sudo certbot --apache -d linuxtechwhiz.info

El comando lo guiará a través de una serie de indicaciones que le permitirán configurar Lets Encrypt para su dominio. Asegúrese de proporcionar su dirección de correo electrónico, acepte los Términos de servicio y especifique los nombres de dominio que desea utilizar en el protocolo HTTPS, que es la versión cifrada de HTTP.

Si todo salió bien, debería recibir un mensaje de felicitación al final informándole que su sitio ha sido protegido mediante el certificado Let's Encrypt. También se mostrará la validez de su certificado, que suele ser después de 90 días después de la implementación.

Ahora regrese a su archivo de host virtual y agregue las siguientes líneas de configuración.

SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem

Guardar y Salir.

La configuración final del host virtual Apache se verá así:

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined

 SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>

Una vez más, reinicie Apache.

sudo systemctl restart httpd

Paso 4: Verificar el certificado SSL de Let's Encrypt

Para verificar que todo esté funcionando, inicie su navegador y visite la dirección IP de su servidor. Ahora deberías ver un símbolo de candado al principio de la URL.

Para obtener más detalles, haga clic en el símbolo del candado y haga clic en la opción "Certificado" en el menú desplegable que aparece.

Los detalles del certificado se mostrarán en la siguiente ventana emergente.

Además, puede probar su servidor en https://www.ssllabs.com/ssltest/ y su sitio debería obtener una calificación ‘A’ como se muestra.

Paso 5: Renovación automática del certificado SSL Let's Encrypt

Let's Encrypt solo es válido durante 90 días. Normalmente, el proceso de renovación lo lleva a cabo el paquete certbot que agrega un script de renovación al directorio /etc/cron.d. El script se ejecuta dos veces al día y renovará automáticamente cualquier certificado dentro de los 30 días posteriores a su vencimiento.

Para probar el proceso de renovación automática, realice una prueba de funcionamiento con certbot.

sudo /usr/local/bin/certbot-auto renew --dry-run

Si no se encontraron errores, significa que está listo para comenzar.

Esto nos lleva al final de esta guía. En esta guía, demostramos cómo puede utilizar certbot para instalar y configurar el certificado Let's Encrypt en un servidor web Apache que se ejecuta en un sistema CentOS 8.