Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CON CENTOS
Los servidores web utilizan HTTP por defecto, que es un protocolo de texto claro.
Como su nombre indica, un protocolo de texto no cifrado que no aplica ningún tipo
de encriptación de los datos. Mientras el servidor web basado en HTTP es muy fácil
de configurar, tiene una desventaja importante en términos de seguridad.
Exponerse a cualquier ataque "man-in-the-middle" capaz de ver el contenido de los
paquetes en tránsito con analizadores de paquetes cuidadosamente colocados. En
caso de una vulnerabilidad, un usuario malintencionado puede incluso configurar un
servidor "impostor" en la ruta de tránsito, que a continuación, se hace pasar por el
servidor web de destino. En este caso, los usuarios finales pueden comunicarse
realmente con el servidor impostor en lugar del servidor de destino real. De esta
manera, el usuario malintencionado puede engañar a los usuarios finales para que
entreguen información confidencial, como nombre de usuario y las contraseñas a
través de falsos formularios cuidadosamente elaborados.
Para proyectos comerciales donde se accede a los sitios web a nivel mundial, se
recomienda comprar un certificado de una autoridad certificadora de confianza
conocido. Estos certificados cuestan dinero, pero aumentan la credibilidad del
proveedor de servicios web.
Preparación
En esta demostración, vamos a utilizar un certificado auto-firmado. Se supone que
el servidor web Apache ya está instalado en CentOS. Para generar un certificado
auto-firmado, se utiliza openssl. Si openssl no está instalado, se puede instalar para
tal uso.
# yum install mod_ssl openssl
Por último, generar un certificado auto-firmado de tipo X 509, que tiene una validez
de 365 keys.
# openssl x509 -req -days 365 -in ca.csr -signkey
ca.key -out ca.crt
Una vez creado el certificado, copia los archivos en los directorios necesarios.
# cp ca.crt /etc/pki/tls/certs/
# cp ca.key /etc/pki/tls/private/
# cp ca.csr /etc/pki/tls/private/
<VirtualHost *:80>
ServerAdmin email@example.com
DocumentRoot /var/www/html/virtual-web
ServerName virtual-web.example.com
</VirtualHost>
# vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
<Directory /var/www/html/virtual-web>
AllowOverride All
</Directory>
ServerAdmin email@example.com
DocumentRoot /var/www/html/virtual-web
ServerName virtual-web.example.com
</VirtualHost>
Para cada host virtual, etiquetas similares deberían ser definidas. Después de
agregar los hosts virtuales, el servicio web se reinicie.
# service httpd restart
Ahora las máquinas virtuales están listos para usar HTTPS también. Opcional:
Forzar Apache Web Server a utilizar siempre HTTPS
Si, por alguna razón, usted decide utilizar siempre HTTPS en el servidor web,
usted tendrá que redirigir todas las solicitudes HTTP entrantes (puerto 80) hacia
el puerto HTTPS (puerto 443).
El Servidor web Apache puede ser fácilmente ajustado para hacer esto.
1. Forzar el Sitio principal solamente
Para forzar el sitio principal para usar siempre HTTPS, modificamos el fichero de
configuración httpd.
# vim /etc/httpd/conf/httpd.conf
ServerName www.example.com:80
Redirect permanent / https://www.example.com
# service httpd restart
# vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName virtual-web.example.com
Redirect permanent / https://virtual-web.example.com/
</VirtualHost>
En resumen, HTTPS siempre se recomienda para los sitios donde se conectan los
usuarios. Esto mejora la seguridad tanto en el servidor y los usuarios que lo
utilizan. Los certificados pueden ser obtenidos en diversos medios, como los auto-
firmado, impulsado por la comunidad o incluso las autoridades comerciales. El
administrador debe ser prudente al seleccionar el tipo de certificado que se
utilizará.