Cómo configurar el servidor Apache independiente con alojamiento virtual basado en nombres con certificado SSL - Parte 4

Cómo configurar el servidor Apache independiente con alojamiento virtual basado en nombres con certificado SSL - Parte 4

A LFCE (corto para Ingeniero certificado de la Fundación Linux) es un profesional capacitado que tiene la experiencia para instalar, administrar y solucionar los servicios de red en los sistemas Linux, y está a cargo del diseño, implementación y mantenimiento continuo de la arquitectura del sistema.

En este artículo le mostraremos cómo configurar Apache para servir contenido web y cómo configurar hosts virtuales basados ​​en nombres y SSL, incluido un certificado autofirmado.

Ingeniero certificado de la Fundación Linux - Parte 4

Presentación del Programa de Certificación de la Fundación Linux (LFCE).

Nota: Que este artículo no se supone que sea una guía completa sobre Apache, sino más bien un punto de partida para el autoestudio sobre este tema para el LFCE examen. Por esa razón tampoco estamos cubriendo el equilibrio de carga con Apache en este tutorial.

Es posible que ya conozca otras formas de realizar las mismas tareas, que es DE ACUERDO Teniendo en cuenta que la certificación de la Fundación Linux está estrictamente basada en el rendimiento. Así, mientras tú 'Termina el trabajo', tienes buenas posibilidades de aprobar el examen.

Requisitos

Por favor refiérase a Parte 1 de la serie actual ("Instalar servicios de red y configurar el inicio automático en el arranque") para obtener instrucciones sobre la instalación y el inicio de Apache.

A estas alturas, debe tener el servidor web Apache instalado y en ejecución. Puede verificar esto con el siguiente comando.

# PS -EF | grep -ei '(apache | httpd)' | Grep -V Grep 

Nota: Que el comando anterior verifica la presencia de cualquiera apache o httpd (los nombres más comunes para el demonio web) entre la lista de procesos en ejecución. Si Apache se está ejecutando, obtendrá una salida similar a la siguiente.

Verifique los procesos de Apache

El método final para probar la instalación de Apache y verificar si se está ejecutando está iniciando un navegador web y apuntar a la IP del servidor. Debemos presentarse con la siguiente pantalla o al menos un mensaje que confirma que Apache está funcionando.

Verifique la página web de Apache

Configuración de Apache

El archivo de configuración principal para Apache se puede ubicar en diferentes directorios dependiendo de su distribución.

/etc/apache2/apache2.conf [para ubuntu]/etc/httpd/conf/httpd.conf [para centos]/etc/apache2/httpd.conf [para OpenSuse] 

Afortunadamente para nosotros, las directivas de configuración están extremadamente bien documentadas en el sitio web de Apache Project. Nos referiremos a algunos de ellos a lo largo de este artículo.

Servir páginas en un servidor independiente con Apache

El uso más básico de Apache es servir páginas web en un servidor independiente donde aún no se han configurado hosts virtuales. El Raiz del documento Directiva especifica el directorio del cual Apache servirá documentos de páginas web.

Tenga en cuenta que, de forma predeterminada, todas las solicitudes se toman de este directorio, pero también puede usar enlaces simbólicos y / o alias también se pueden usar para señalar otras ubicaciones.

A menos que sea coincidente por el Alias directiva (que permite almacenar documentos en el sistema de archivos local en lugar de en el directorio especificado por Raiz del documento), el servidor agrega la ruta desde la URL solicitada a la raíz del documento para hacer la ruta al documento.

Por ejemplo, dado lo siguiente Raiz del documento:

Apache DocumentRoot

Cuando el navegador web apunta a [Servidor IP o nombre de host]/LFCE/TECMINT.html, El servidor se abrirá /var/www/html/lfce/tecmint.html (suponiendo que dicho archivo existe) y guarde el evento en su registro de acceso con un 200 (DE ACUERDO) respuesta.

El registro de acceso se encuentra típicamente dentro /var/log bajo un nombre representativo, como acceso.registro o access_log. Incluso puede encontrar este registro (y el registro de errores también) dentro de un subdirectorio (por ejemplo, /var/log/httpd en CentOS). De lo contrario, el evento fallido aún se registrará al registro de acceso pero con un 404 (No encontrado) Respuesta.

Registro de acceso a Apache

Además, los eventos fallidos se registrarán en el registro de errores:

Registro de errores de Apache

El formato de la registro de acceso se puede personalizar de acuerdo con sus necesidades utilizando el Logformat Directiva en el archivo de configuración principal, mientras que no puede hacer lo mismo con el registro de errores.

El formato predeterminado del registro de acceso es como sigue:

LogFormat " %H %L %U %T \" %R \ "" %> S %B"" [Apodo] 

Donde cada una de las letras precedidas por un signo porcentual indica que el servidor registra una cierta información:

Cadena Descripción
 %H  Nombre de host remoto o dirección IP
 %L  Nombre de registro remoto
 %u  Usuario remoto si la solicitud está autenticada
 %T  Fecha y hora cuando se recibió la solicitud
 %R  Primera línea de solicitud al servidor
 %> S  Estado final de la solicitud
 %b  Tamaño de la respuesta [bytes]

y apodo es un alias opcional que se puede usar para personalizar otros registros sin tener que ingresar toda la cadena de configuración nuevamente.

Puede consultar el Logformat Directiva [Sección de formatos de registro personalizados] en los documentos de Apache para otras opciones.

Ambos archivos de registro (acceso y error) Representar un gran recurso para analizar rápidamente de un vistazo lo que está sucediendo en el servidor Apache. No hace falta decir que son la primera herramienta que un administrador del sistema utiliza para solucionar problemas.

Finalmente, otra directiva importante es Escuchar, Lo que le dice al servidor que acepte solicitudes entrantes en el puerto especificado o la combinación de dirección/puerto:

Si solo se define un número de puerto, el Apache escuchará al puerto dado en todas las interfaces de red (el signo de comodín * se usa para indicar 'todas las interfaces de red').

Si se especifica la dirección IP y el puerto, entonces el Apache escuchará en la combinación de puerto y interfaz de red dada.

Tenga en cuenta (como verá en los ejemplos a continuación) que múltiples directivas de escucha se pueden usar al mismo tiempo para especificar múltiples direcciones y puertos para escuchar. Esta opción instruye al servidor que responda a las solicitudes de cualquiera de las direcciones y puertos enumerados.

Configuración de hosts virtuales basados ​​en nombres

El concepto de host virtual define un sitio individual (o dominio) que es atendido por la misma máquina física. En realidad, se pueden servir múltiples sitios / dominios de un solo ""real""Servidor como host virtual. Este proceso es transparente para el usuario final, a quien parece que los diferentes sitios están siendo atendidos por distintos servidores web.

El alojamiento virtual basado en el nombre permite que el servidor confíe en el cliente para informar el nombre de host como parte de los encabezados HTTP. Por lo tanto, utilizando esta técnica, muchos hosts diferentes pueden compartir la misma dirección IP.

Cada host virtual está configurado en un directorio dentro de Raiz del documento. Para nuestro caso, utilizaremos los siguientes dominios ficticios para la configuración de la prueba, cada uno ubicado en el directorio correspondiente:

  1. ilovelinux.comunicarse - /var/www/html/ilovelinux.com/public_html
  2. Linuxrocks.organizar - /var/www/html/linuxrocks.org/public_html

Para que las páginas se muestren correctamente, chmod cada directorio de virtualhost a 755:

# chmod -r 755/var/www/html/ilovelinux.com/public_html # chmod -r 755/var/www/html/linuxrocks.org/public_html 

A continuación, cree una muestra índice.html Archivo dentro de cada public_html directorio:

  www.ilovelinux.comunicarse   

Esta es la página principal de www.ilovelinux.comunicarse

Finalmente, en Cento y usura de apertura Agregue la siguiente sección en la parte inferior de /etc/httpd/conf/httpd.confusión o /etc/apache2/httpd.confusión, respectivamente, o simplemente modificarlo si ya está allí.

 ServerAdmin [Correo electrónico protegido] DocumentRoot/Var/www/html/iLovelinux.com/public_html ServerName www.ilovelinux.com serveralias www.ilovelinux.com ilovelinux.com Errorlog/var/www/html/ilovelinux.com/error.log logformat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customLog/var/www/html/iLovelinux.com/acceso.Log myVhost ServerAdmin [correo electrónico protegido] documentroot/var/www/html/linuxrocks.org/public_html ServerName www.Linuxrocks.org egeralias www.Linuxrocks.org Linuxrocks.Org ErrorLog/var/www/html/linuxrocks.org/error.log logformat "" %v %l %u %t \"" %r \ "" %> s %b"" myvhost customLog/var/www/html/linuxrocks.org/acceso.registrar myvhost  

Tenga en cuenta que también puede agregar cada definición de host virtual en archivos separados dentro del /etc/httpd/conf.d directorio. Si elige hacerlo, cada archivo de configuración debe nombrarse de la siguiente manera:

/etc/httpd/conf.D/Ilovelinux.comunicarse.conf/etc/httpd/conf.D/Linuxrocks.organizar.confusión 

En otras palabras, necesitas agregar .confusión al sitio o nombre de dominio.

En Ubuntu, Se nombra cada archivo de configuración individual /etc/apache2/sites disponible/[nombre del sitio].confusión. Cada sitio está habilitado o deshabilitado con el A2ensita o A2Dissite comandos, respectivamente, como sigue.

# A2ensite/etc/apache2/sites-disponible/iLovelinux.comunicarse.Conf # a2dissite/etc/apache2/sites disponible/ilovelinux.comunicarse.conf # a2ensite/etc/apache2/sites disponible/Linuxrocks.organizar.conf # a2dissite/etc/apache2/sites disponible/Linuxrocks.organizar.confusión 

El A2ensita y A2Dissite Los comandos crean enlaces al archivo de configuración del host virtual y colocan (o eliminan) en el /etc/apache2/sitios habilitado directorio.

Para poder navegar a ambos sitios desde otra caja de Linux, deberá agregar las siguientes líneas en el /etc/huéspedes Archivo en esa máquina para redirigir las solicitudes a esos dominios a una dirección IP específica.

[Dirección IP de su servidor web] www.ilovelinux.com [dirección IP de su servidor web] www.Linuxrocks.organizar 

Como medida de seguridad, Selinux No permitirá apache para escribir registros en un directorio que no sea el predeterminado /var/log/httpd.

Puede deshabilitar Selinux o establecer el contexto de seguridad correcto:

# chcon system_u: object_r: httpd_log_t: s0/var/www/html/xxxxxx/error.registro 

dónde xxxxxx es el directorio interior /var/www/html donde has definido tus hosts virtuales.

Después de reiniciar Apache, debe ver la página siguiente en las direcciones anteriores:

Verifique Apache VirtualHosts

Instalación y configuración de SSL con Apache

Finalmente, crearemos e instalaremos un firme Certificado para usar con Apache. Este tipo de configuración es aceptable en entornos pequeños, como una LAN privada.

Sin embargo, si su servidor expondrá contenido al mundo exterior a través de Internet, querrá instalar un certificado firmado por un tercero para corroborar su autenticidad. De cualquier manera, un certificado le permitirá cifrar la información que se transmite a, desde o dentro de su sitio.

En Cento y usura de apertura, Necesitas instalar el mod_ssl paquete.

# Yum Update && Yum install Mod_ssl [en Centos] # Zypper Refresh && zypper install mod_ssl [en openSUSE] 

Mientras en Ubuntu Tendrá que habilitar el módulo SSL para Apache.

# a2enmod ssl 

Los siguientes pasos se explican usando un Cento Servidor de prueba, pero su configuración debe ser casi idéntica en las otras distribuciones (si se encuentra con algún tipo de problemas, no dude en dejar sus preguntas utilizando el formulario de comentarios).

Paso 1 [Opcional]: Cree un directorio para almacenar sus certificados.

# mkdir/etc/httpd/ssl-certs 

Paso 2: Genere su certificado autoinfirmado y la clave que lo protegerá.

# OpenSSL Req -x509 -nodes -days 365 -NewKey RSA: 2048 -Keyout/etc/httpd/ssl -certs/apache.clave -out/etc/httpd/ssl -certs/apache.CRT 

Una breve explicación de las opciones enumeradas anteriormente:

  1. REQ -X509 indica que estamos creando un certificado X509.
  2. -nodos (No DES) significa ""No cifre la clave"".
  3. -días 365 es el número de días que el certificado será válido para.
  4. -Newkey RSA: 2048 crea una llave RSA de 2048 bits.
  5. -KeyOut/etc/httpd/ssl-certs/apache.llave es el camino absoluto de la tecla RSA.
  6. -out/etc/httpd/ssl-certs/apache.CRT es la ruta absoluta del certificado.
Crear certificado SSL de Apache

Paso 3: Abra su archivo de configuración de host virtual elegido (o su sección correspondiente en /etc/httpd/conf/httpd.confusión Como se explicó anteriormente) y agregue las siguientes líneas a una declaración de host virtual escuchando en el puerto 443.

SSLEngine en SSLCertificateFile/Etc/Httpd/SSL-Certs/Apache.CRT SSLCertificAtekeyFile/Etc/Httpd/SSL-Certs/Apache.llave 

Tenga en cuenta que necesita agregar.

NameVirtualHost *: 443 

En la parte superior, justo debajo

NameVirtualHost *: 80 

Ambas directivas le indican a Apache que escuche en los puertos 443 y 80 de todas las interfaces de red.

El siguiente ejemplo se toma de /etc/httpd/conf/httpd.confusión:

Directivas Apache VirtualHost

Luego reinicie Apache,

# Servicio Apache2 reiniciar [Sysvinit y sistemas basados ​​en advenidos] # SystemCTL reiniciar httpd.Servicio [Sistemas basados ​​en Systemd] 

Y apunte a tu navegador a https: // www.ilovelinux.comunicarse. Se le presentará la siguiente pantalla.

Verifique el certificado de Apache SSL

Adelante y haga clic en ""Entiendo los riesgos"" y ""Añadir excepción"".

Advertencia de apache ceritfica

Finalmente, verifique ""Almacenar permanentemente esta excepción""Y haga clic"" ""Confirmar la excepción de seguridad"".

Agregar SSL Ceritficate

Y serás redirigido a tu página de inicio usando https.

Apache https habilitado

Resumen

En esta publicación hemos demostrado cómo configurar apache y basado en el nombre alojamiento virtual con Ssl Para asegurar la transmisión de datos. Si por alguna razón se encontró con algún problema, no dude en informarnos con el formulario de comentarios a continuación. Estaremos más que contentos de ayudarlo a realizar una configuración exitosa.

Leer también

  1. Hosting virtual basado en IP de Apache y su nombre
  2. Creación de hosts virtuales Apache con opciones de Enable/Disable Vhosts
  3. Monitorear el ""servidor web Apache"" utilizando la herramienta ""Apache GUI""
Convertirse en ingeniero certificado de Linux"