Cómo instalar y configurar Apache con Let's Encrypt TLS / SSL en Debian 11 Bullseye

APACHE, también conocido como Servidor Apache HTTP, ha sido una de las aplicaciones de servidor web más utilizadas a nivel mundial durante las últimas décadas. Es un software de aplicación web gratuito y de código abierto mantenido por el Apache Software Foundation. Apache proporciona algunas características poderosas con módulos cargables dinámicamente, fácil integración con otro software y manejo de archivos estáticos, entre otras características populares.

En el siguiente tutorial, aprenderá cómo instalar el servidor web Apache en Debian 11 Bullseye.

Requisitos previos

  • SO recomendado: Diana de Debian 11
  • Cuenta de usuario: Una cuenta de usuario con privilegios de sudo or acceso root (comando su).

Actualización del sistema operativo

Actualice su Diana de Debian 11 sistema operativo para asegurarse de que todos los paquetes existentes estén actualizados:

sudo apt update && sudo apt upgrade

Acceso root o sudo

De forma predeterminada, cuando crea su cuenta al inicio con Debian en comparación con otras distribuciones, no recibe automáticamente el estado de sudoers. Debe tener acceso al contraseña de root que se utilizará el comando su o visite nuestro tutorial sobre Cómo agregar un usuario a Sudoers en Debian.

Anuncio

El tutorial utilizará el comando sudo y asumiendo que tienes el estado de sudo. Si no ha configurado un usuario sudo, use el siguiente comando para iniciar sesión en root y continuar.

Anuncio
su

Método 1. Instale Apache desde el repositorio de Debian

La primera opción para instalar Apache es usar el repositorio predeterminado de Debian. Esto es más práctico para la mayoría de los usuarios, ya que es muy estable y seguro.

Para instalar Apache, abra su terminal y ejecute el siguiente comando:

sudo apt install apache2 -y

A continuación, verifique que la instalación se haya realizado correctamente verificando la versión de compilación de Apache:

sudo apache2 --version

Ejemplo de salida:

Anuncio
Server version: Apache/2.4.51

Verifique si Apache2 se está ejecutando correctamente usando lo siguiente systemctl mando:

systemctl status apache2

Salida de ejemplo si todo está bien:

Anuncio
Cómo instalar y configurar Apache con Let's Encrypt TLS / SSL en Debian 11 Bullseye

Método 2. Instale la última versión de Apache desde el repositorio de Ondřej Surý

De forma predeterminada, Apache está disponible en Repositorios de software de Debian, lo que facilita su instalación. Sin embargo, como muchos saben con Debian, a menudo puede faltar detrás de lo que es actual, no tanto por los riesgos de seguridad. Aún así, faltan las funciones y mejoras más nuevas.

Se recomienda para usuarios que deseen instalar la última versión de Apache. Ondřej Surý's versión de Apache 2, que es el más actualizado y prediseñado con módulos más utilizados.

Primero, si no tiene curl instalado, use el siguiente comando:

Anuncio
sudo apt install curl -y

Para agregar el repositorio, use el siguiente comando en su terminal:

curl -sSL https://packages.sury.org/apache2/README.txt | sudo bash -x

Actualice su repositorio para reflejar el nuevo cambio:

sudo apt update

Ahora que ha instalado el Repositorio de Apache y actualizó la lista de repositorios, instale Apache2 con lo siguiente:

Anuncio
sudo apt install apache2 -y

La instalación instalará todas las dependencias necesarias.

Vea también  Cómo instalar VSCodium en Debian 11/10

Una vez instalada, confirme la versión ejecutando el siguiente comando:

Anuncio
apache2 -v

Ejemplo de salida:

Server version: Apache/2.4.51

Tenga en cuenta que ambos repositorios están en la misma versión en el momento del tutorial debido a una actualización URGENTE de CVE. Normalmente, el repositorio de Ondřej Surý está por delante del Debian 11 predeterminado en todo momento.

Verifique si Apache2 se está ejecutando correctamente usando lo siguiente systemctl mando:

systemctl status apache2

Salida de ejemplo si todo está bien:

Anuncio
Cómo instalar y configurar Apache con Let's Encrypt TLS / SSL en Debian 11 Bullseye

Opcional: configurar el cortafuegos UFW para Apache

Los usuarios de Debian que hayan instalado UFW deberán ajustar la Reglas de la UFW para permitir el acceso externo a los puertos web predeterminados. Afortunadamente, durante la instalación, Apache se registra en UFW para proporcionar algunos perfiles que se pueden usar para habilitar o deshabilitar el acceso, lo que facilita y agiliza la configuración.

Anuncio

De forma predeterminada, UFW no está instalado. Si desea instalar UFW, ejecute el siguiente comando en su terminal:

sudo apt install ufw -y

A continuación, habilite UFW. Cuando habilita el firewall, denegará todas las entradas y permitirá todas las salidas de forma predeterminada.

sudo ufw enable

Primero, enumere los perfiles de la aplicación para ver los perfiles de Apache que están disponibles con el siguiente comando:

sudo ufw app list

Ejemplo de salida:

Available applications:
  Apache
  Apache Full
  Apache Secure

De la salida anterior, tiene tres opciones de perfil para elegir. Para romperlo APACHE se ejecuta en el puerto 80 (HTTP), Apache seguro se ejecuta en el puerto 443 (HTTPS) y Apache completo es una combinación de permitir ambos. El más común es Apache Full o Apache Secure.

Anuncio
Anuncio

Para el tutorial, dado que no hemos configurado SSL, habilitaremos el perfil (Apache) con el siguiente comando:

sudo ufw allow 'Apache'

Ejemplo de salida:

Rule added
Rule added (v6)

Como se indicó anteriormente, se han agregado las reglas tanto para IPV4 como para IPV6. Más adelante, puede deshabilitar este perfil y habilitar solo seguro o deshabilitar la regla Apache y usar la regla Apache Full en su lugar.

Verificar el servidor web Apache

Ahora que ha instalado y configurado el cortafuegos UFW, es hora de probar para ver si Apache 2 es accesible y funciona correctamente solicitando una página.

Puede acceder a la página de inicio predeterminada de Apache para verificar si el software se ejecuta correctamente a través de la dirección IP de su servidor. Para averiguarlo, si no lo sabe, utilice el siguiente comando a continuación:

Anuncio
hostname -I

Debería recuperar la dirección IP interna en la que se encuentra el servidor como ejemplo:

Anuncio
###EXAMPLE ONLY###
192.168.50.15 

Es posible que obtenga de 2 a 3 resultados. Pruebe cada uno hasta que encuentre la dirección IP correcta.

Si necesita su dirección IP pública (externa), use el siguiente comando en su lugar:

curl -4 icanhazip.com

Es posible que deba instalar el paquete CURL si falta. Para hacer esto, ejecute el siguiente comando:

sudo apt install curl -y

Una vez que tenga la dirección IP de su servidor, abra su navegador de Internet favorito e ingrese lo siguiente:

Anuncio
http://your_server_ip

Debería obtener la siguiente página en su navegador de Internet:

Cómo instalar y configurar Apache con Let's Encrypt TLS / SSL en Debian 11 Bullseye

Felicitaciones, ha instalado el servidor web Apache 2 y actualmente está funcionando.

Anuncio

El siguiente paso es configurar hosts virtuales.

Crear o configurar hosts virtuales para Apache

Con el servidor web Apache, puede crear hosts virtuales para administrar configuraciones para más de un dominio que se ejecuta en un solo servidor. Si ha usado Nginx antes, es el equivalente a bloques de servidor. En el siguiente ejemplo, el tutorial creará un dominio example-domain.com que reemplazará con su nombre de dominio.

Vea también  Cómo instalar SMPlayer en AlmaLinux 9

De forma predeterminada, Apache en Debian 11 tiene un bloque de servidor habilitado de forma predeterminada que está configurado para servir documentos desde el / Var / www / html directorio. Si está operando un sitio web, puede modificar este bloque de servidor para adaptarlo al suyo. Sin embargo, si aloja varios sitios web, debe crear una nueva estructura de directorio para sus diversos dominios.

Anuncio

Crear o configurar directorios

En primer lugar, vete / Var / www / html directorio intacto como directorio predeterminado, luego cree un nuevo directorio, por ejemplo-dominio.com, como se muestra a continuación:

sudo mkdir /var/www/example_domain

El siguiente paso es asignar la propiedad del directorio con la variable de entorno $ USER:

sudo chown -R $USER:$USER /var/www/example_domain

Por lo general, los permisos de las raíces web deben configurarse correctamente y puede verificar utilizando el -ls l comando:

Anuncio
ls -l /var/www/example_domain

Ejemplo de salida:

drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain

Como puede ver, tenemos el permiso de drwxr-xr-x, que es el equivalente de chmod 755. Si no tiene este permiso establecido, ejecute el siguiente comando:

Anuncio
sudo chmod -R 755 /var/www/example_domain

Ahora cree una página de muestra index.html con su editor de texto favorito. El tutorial usará nano como se muestra a continuación:

sudo nano /var/www/example_domain/index.html

En el archivo, copie y pegue el siguiente código:

<html>
    <head>
        <title>Welcome to Website!</title>
    </head>
    <body>
        <h1>Success! The virtual host is working! You did not mess it up.</h1>
    </body>
</html>

Guarda el archivo (CTRL + O), luego sal (CTRL + X).

Crear host virtual

Ahora que ha creado una página de destino y ha establecido la propiedad y los permisos correctos. Ahora puede proceder a crear un archivo de host virtual. De forma predeterminada, todos los archivos de host virtual deberán estar ubicados en / etc / apache2 / sites-available / directorio.

Anuncio

Primero, use su editor de texto favorito para crear un archivo de configuración ubicado en /etc/apache2/sitios-disponibles/example_domain.conf como a continuación:

Anuncio
sudo nano /etc/apache2/sites-available/example_domain.conf

Ahora, copie y pegue lo siguiente en el archivo de bloque de configuración, tenga en cuenta que debe reemplazar su nombre del servidor, alias del servidor, y Raiz del documento contigo mismo:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Tenga en cuenta que no olvide cambiar las directivas del servidor requeridas por las suyas.

Guarde el archivo de configuración usando (CTRL + O) y salir con (CTRL + X).

Habilitar host virtual

Ahora que tiene listo su archivo de configuración de host virtual, es hora de habilitarlo. Con Apache, a diferencia de Nginx, donde crearía un enlace simbólico usando el comando ln -s, Apache usa sus herramientas, como se muestra en el tutorial a continuación:

Primero, deshabilite el archivo de bloque del servidor instalado predeterminado existente 000-predeterminado.conf con el comando a2dissite:

Anuncio
Anuncio
sudo a2dissite 000-default.conf

Ahora habilite su archivo de host virtual con el a2ensite mando:

sudo a2ensite example_domain.conf

Ahora, como la mayoría de las aplicaciones de servidor web, Apache tiene una carrera en seco función. Antes de ponerlo en funcionamiento, pruebe su archivo de configuración con el siguiente comando:

sudo apache2ctl configtest

Si todo funciona correctamente, la salida de ejemplo debería ser:

Syntax OK

Ahora reinicie el servidor web Apache para que su nuevo host virtual esté activo con el siguiente comando:

sudo systemctl restart apache2

Apache debería estar sirviendo actualmente la página de destino que creó para su nuevo dominio. Para probar esto, abra su navegador de Internet y escriba su nombre de dominio HTTP: // dominio_ejemplo donde debería obtener la siguiente página de destino que creó en el archivo index.html:

Anuncio
Cómo instalar y configurar Apache con Let's Encrypt TLS / SSL en Debian 11 Bullseye

Felicitaciones, ha creado con éxito su host virtual y lo ha hecho funcionar con éxito en su dominio.

Anuncio

Asegure Apache con Let's Encrypt SSL Free Certificate

Idealmente, querría ejecutar su Apache en HTTPS usando un certificado SSL. La mejor forma de hacer esto es usar Vamos a cifrar una autoridad de certificación libre, automatizada y abierta dirigida por el Grupo de Investigación de Seguridad de Internet sin fines de lucro (ISRG).

Vea también  Cómo instalar GIT en Ubuntu 22.10/22.04/20.04

Primero, instale el paquete certbot como sigue:

sudo apt install python3-certbot-apache -y

Una vez instalado, ejecute el siguiente comando para iniciar la creación de su certificado:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Esta es la configuración ideal que incluye redirecciones forzadas HTTPS 301, encabezado de seguridad de transporte estricto y grapado OCSP. Solo asegúrese de ajustar el correo electrónico y el nombre de dominio a sus requisitos.

Anuncio

Ahora tu URL será https://www.example.com en lugar de HTTP://www.ejemplo.com.

Tenga en cuenta que si usa el antiguo URL HTTP, se redirigirá automáticamente a HTTPS.

Anuncio

Administrar el servicio Apache

Ahora que tiene Apache ejecutándose en su servidor con éxito, algunas notas clave de administración son las siguientes.

Registros del servidor Apache

Los registros del servidor Apache se pueden encontrar en el directorio / var / log / apache2 / con acceso.log y error.log respetuosamente siendo los nombres de acceso y error predeterminados dados. Esto se puede cambiar a otros nombres en su archivo de configuración de host virtual en el futuro.

Comandos de Apache

Los siguientes comandos que sin duda utilizará en su gestión diaria cuando trabaje con Apache. Algunas de las más comunes son:

Anuncio

Para detener el servidor web Apache:

sudo systemctl stop apache2

Para iniciar el servidor web Apache:

sudo systemctl start apache2

Para reiniciar el servidor web Apache:

Anuncio
sudo systemctl restart apache2

Para recargar el servidor web Apache (Para cambios menores que no requieren reinicio):

sudo systemctl reload apache2

Para deshabilitar Apache en el arranque del servidor:

Anuncio
sudo systemctl disable apache2

Para iniciar Apache en el arranque del servidor (Habilitado automáticamente en la instalación):

sudo systemctl enable apache2

Cómo actualizar Apache

Para actualizar Apache en el futuro, esto se hace con el comando que usó para verificar si su sistema está actualizado. Tenga en cuenta que siempre cree copias de seguridad o imágenes si tiene un servicio Apache que ejecuta servicios críticos. Por lo general, la actualización es bastante segura, pero a veces pueden ocurrir errores como cualquier actualización de software.

Para actualizar Apache, use el siguiente comando:

sudo apt update

Si hay una actualización de Apache disponible, use el comando:

Anuncio
sudo apt upgrade

Cómo quitar (desinstalar) Apache

Para eliminar Apache si ya no lo usa, puede hacerlo usando el siguiente comando:

Anuncio
sudo apt autoremove apache2 --purge

Este comando también eliminará las dependencias no utilizadas que vinieron con la instalación.

Comentarios y Conclusión

En el tutorial, aprendió cómo instalar Apache 2 usando el repositorio predeterminado de Debian o el Apache 2 actualizado recomendado usando el repositorio de Ondřej Surý. En general, Apache ha sido el servidor de aplicaciones web más utilizado en el mundo durante décadas. Sin embargo, Nginx finalmente ha superado ligeramente el liderazgo. Apache sigue siendo una de las aplicaciones web más implementadas y reconocidas, especialmente con la combinación de pila LAMP, que a menudo se usa para servidores web back-end. Encontrará opciones más amigables para Apache que Nginx, lo que llevará a los usuarios más nuevos a hospedar su servidor web, tal vez para probar Apache sobre Nginx como primer paso.


¿No es lo que estabas buscando? Intente buscar tutoriales adicionales.

Deja un comentario