Cómo configurar el servicio HTTPS de Apache en CentOS
Los servidores web utilizan HTTP por defecto, que es un protocolo de texto plano. Como su nombre lo indica, el protocolo de texto plano no cifra los datos en tránsito de ninguna manera. Si bien los servidores web basados en HTTP son muy fáciles de configurar, tienen importantes fallas de seguridad. Cualquier "intermediario", a través de rastreadores de paquetes cuidadosamente protegidos, puede ver el contenido de cualquier paquete que pase. Además, los usuarios malintencionados pueden incluso configurar un servidor WEB falso en la ruta de transmisión para hacerse pasar por el servidor web de destino real. En este caso, es posible que el usuario final se esté comunicando con el servidor impostor en lugar de con el servidor de destino real. De esta manera, los usuarios malintencionados pueden engañar a los usuarios finales para que obtengan información confidencial, como nombres de usuario y contraseñas, a través de formularios cuidadosamente diseñados.
Para hacer frente a este tipo de vulnerabilidades, la mayoría de los proveedores tienden a implementar el protocolo HTTPS en sus servidores web. Para sitios web de solo lectura, donde el usuario solo puede leer el contenido y en realidad no envía ninguna información, HTTP sigue siendo una opción viable. Sin embargo, para los sitios web que almacenan información confidencial, por ejemplo: los usuarios necesitan iniciar sesión para obtener servicios del sitio web, entonces HTTPS es necesario.
HTTPS puede proporcionar las siguientes capacidades para un sitio web.
Asegúrese de que todos los paquetes de datos transmitidos a través del servidor estén cifrados.
Se establece un certificado digital oficial para que el servidor falso no pueda suplantar al servidor real.
Lo primero que debes hacer para establecer un servidor WEB que admita HTTPS es obtener un certificado digital. Los certificados digitales se pueden obtener de cualquiera de las siguientes formas.
Se recomiendan certificados autofirmados para fines de prueba y proyectos personales. Los proveedores de servicios también pueden utilizar certificados autofirmados, pero generalmente son adecuados para situaciones en las que los usuarios confían entre sí. Además, la compra de certificados autofirmados no cuesta dinero.
Los certificados están disponibles a través de proveedores de certificación comunitarios como StartSSL y CACERT. Estos certificados tampoco cuestan nada, pero se recomiendan para proyectos personales.
Para sitios web comerciales globales, se recomienda comprar certificados de autoridades certificadoras reconocidas y confiables. Estos certificados cuestan dinero, pero aumentan la credibilidad del ISP.
Preparación
En este documento utilizaremos un certificado autofirmado. Se supone que CentOS ya tiene instalado el servidor web Apache. Necesitamos generar un certificado autofirmado usando OpenSSL. Si OpenSSL aún no está instalado, puede instalarlo usando yum.
# yum install mod_ssl openssl
Generar un certificado autofirmado
El siguiente comando se puede utilizar para generar un certificado autofirmado. Primero, genere una clave privada de cifrado de 2048 bits.
# openssl genrsa -out ca.key 2048
Luego genere una solicitud de firma de certificado (CSR).
# openssl req -new -key ca.key -out ca.csr
Finalmente, genere un certificado autofirmado de tipo X509.
# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
Después de crear el certificado, copie el archivo al directorio correspondiente.
# cp ca.crt /etc/pki/tls/certs/
# cp ca.key /etc/pki/tls/private/
# cp ca.csr /etc/pki/tls/private/
Configuración del servidor web Apache
Primero, modifique el siguiente archivo de configuración.
# vim /etc/.ca-bundle
Luego reinicie, todos los archivos del sitio web se guardan en el directorio /var/www/html/virtual-web.
Para hosts virtuales, una configuración HTTP típica es así.
# vim /etc/
DocumentRoot /var/www/html/virtual-web
Nombre del servidor virtual-web.ejemplo.com
lt;/VirtualHostgt;
Podemos consultar la configuración anterior para crear un host virtual HTTPS.
# vim /etc/
DocumentRoot /var/www/html/virtual-web
Nombre del servidor virtual-web.ejemplo.com
lt;/VirtualHostgt;
Cada host virtual debe definirse de acuerdo con la configuración anterior. Después de agregar el host virtual, reinicie el servicio web.
# servicio: 80
Redireccionamiento permanente /
# servicio
Redireccionamiento permanente / /
lt; /VirtualHostgt;
# service httpd restart
En resumen, HTTPS siempre es el método recomendado cuando hay interacciones como el inicio de sesión del usuario, lo que puede mejorar la seguridad del servidor. Los certificados se pueden obtener de diversas formas, como por ejemplo: autofirmados, proporcionados por la comunidad o incluso adquiridos por instituciones comerciales. Los administradores deben seleccionar cuidadosamente el tipo de certificado que utilizarán.