Asegure Apache con Lets Encrypt SSL Certificate en CentOS 8


Asegurar 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 es seguro.

En la mayoría de los casos, los certificados de seguridad se pagan y se 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 ningún costo.

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

En este artículo, le mostraremos cómo puede instalar Let's Encrypt Certificate with Certbot para el servidor web Apache y, posteriormente, configurar el certificado para que se renueve automáticamente en CentOS 8.

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 la autoridad de cifrado y lo implementa en su servidor web sin muchos problemas.

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

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

$ sudo dnf install mod_ssl openssl

Descargue certbot usando el comando curl.

$ sudo curl -O https://dl.eff.org/certbot-auto

A continuación, mueva el archivo certbot al directorio /usr/local/bin y asigne los permisos de ejecución del archivo.

$ sudo mv certbot-auto /usr/local/bin
$ sudo chmod 755 /usr/local/bin/certbot-auto

Paso 2: crear 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 Let's Encrypt SSL Certificate en CentOS 8

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

$ sudo /usr/local/bin/certbot-auto --apache

A continuación, se instalarán varios paquetes de Python.

Después de que la instalación de los paquetes sea exitosa, certbot iniciará una sesión de línea de comandos interactiva que lo guiará con la instalación del certificado Let's Encrypt.

Si todo salió bien, debería recibir un mensaje de felicitación al final informándole que su sitio ha sido protegido con el certificado Let's Encrypt. También se mostrará la validez de su certificado, que suele ser 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: Verificación del certificado SSL Let's Encrypt

Para verificar que todo está funcionando, inicie su navegador y visite la dirección IP de su servidor. Ahora debería 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 debe obtener una calificación de "A" como se muestra.

Paso 5: Renovar automáticamente el certificado SSL cifremos

Lets Encrypt solo es válido durante 90 días. Por lo general, 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 usar certbot para instalar y configurar el certificado Let's Encrypt en el servidor web Apache que se ejecuta en un sistema CentOS 8.