Apache con hosts virtuales
En este artículo comenzamos a agregarle funcionalidad a nuestro servidor web Apache, se recomienda leer el artículo de instalación de Apache con soporte para SSL. Para iniciar, vamos a crear la estructura para alojar de forma ordenada los diferentes sitios.
Con el siguiente comando la hacemos de una sola vez.
mkdir -p /var/www/prueba/{cgi-bin,html,logs,etc,var}
De esta forma quedan creados dentro de la carpeta prueba cuatro directorios que luego albergaran los archivos necesarios, dentro del directorio ../html pondremos el index.html que es la página que se carga al inicio cuando escribimos la url de nuestra página.
El archivo de configuración para los diferentes sitios estarán en /etc/httpd/conf.d/, en este caso /etc/httpd/conf.d/prueba.conf, luego debemos crear uno para cada dominio por separado. Este tiene la configuración de los hosts virtuales con soporte para SSL. Suponiendo que nuestro servidor web tiene IP 192.168.1.10, este es un ejemplo del contenido del archivo, teniendo en cuenta que lo que se pretende es con una sola IP alojar varios dominios distintos.
NameVirtualHost 192.168.1.10:80 ServerAdmin admin@prueba.com.uy DocumentRoot /var/www/prueba/html ServerName www.prueba.com.uy ServerAlias prueba.com.uy Redirect 301 / https://www.prueba.com.uy/ CustomLog /var/www/ prueba/logs/access_log combined Errorlog /var/www/prueba/logs/error_log NameVirtualHost 192.168.1.10:443 ServerAdmin admin@prueba.com.uy DocumentRoot /var/www/prueba/html ServerName www.prueba.com.uy ScriptAlias /cgi-bin/ /var/www/prueba/cgi-bin/ SSLEngine on SSLCertificateFile /etc/ssl/prueba/prueba.crt SSLCertificateKeyFile /etc/ssl/prueba/prueba.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown CustomLog /var/www/prueba/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r"\ %b" CustomLog /var/www/prueba/logs/ssl_access_log combined Errorlog /var/www/prueba/logs/ssl_error_log
Luego debemos reiniciar Apache para que surtan efecto los cambios realizados.
service httpd restart
Para probar si todo está funcionando, digitamos en la url de nuestro navegador http://prueba.com.uy, luego automaticamente se redirigira nuestra consulta a https://prueba.com.uy
Esto es posible si ya se tiene un servidor DNS, configurado en nuestra lan, de lo contrario debemos sustituir el nombre del dominio por la IP del equipo en este caso será http://192.168.1.10
Si repetimos el proceso y sustituimos la palabra prueba por intranet, y tenemos el DNS correctamente configurado, podemos digitar luego en la url http://intranet.com.uy, y obtener una respuesta positiva. De esta forma tenemos varios dominios en un mismo servidor con una sola dirección IP.
Espero que este artículo les sea de utilidad y si tienen dudas envíenlas.
Read MoreInstalar Apache con soporte SSL
La idea de este tutorial es mostrar una forma muy elemental de instalar y configurar un servidor útil para alojar nuestros sitios Web, en este caso Apache con soporte para conexiones seguras SSL. En sucesivos tutoriales iremos agregando funcionalidad a nuestro servidor y veremos el modo de hacerlo funcionar en conjunto con un servidor DNS y así tener acceso a los dominios virtuales que se creen.
Instalar Apache
La instalación de este servidor web es bastante sencilla, en este caso lo haremos con soporte para PHP, mysql, python, perl, ssl y tls.
yum -y install php php-mysql mod_perl mod_python mod_ssl
Con esto el servidor ya está funcionando, pero le haremos unas modificaciones para que refleje nuestras necesidades.
Configurar Soporte SSL
mkdir -m 0700 /etc/ssl
Se crea el directorio para almacenar las claves que se generan
mkdir -m 0700 /etc/ssl/prueba.com.uy
Creamos un subdirectorio para que sea mas prolijo solo con derechos para root que es donde se guardan las claves
cd /etc/ssl/prueba.com.uy
Ingresamos al directorio
openssl genrsa -des3 –rand file1.gz:file2.gz:file3.gz:file4.gz:file5.gz -out prueba.key 1024
Creamos la clave utilizando aleatoriamente los nombres de 5 archivos para aumentar la seguridad, ésta se llamará prueba.key
openssl rsa -in prueba.key -out prueba.pem
Generamos esta clave para que se pueda detener y arrancar el servicio httpd sin que se necesite ingresar una contraseña por parte del administrador
openssl req -new -key prueba.key -out prueba.csr
Opcionalmente creamos un archivo .csr para enviarlo a una autoridad certificadora la que nos envía un archivo .crt firmado por ellos y nos da un aval reconocido internacionalmente. Este proceso hace que se nos pidan algunos datos, en este caso lo llenamos con los datos de la prueba.
En caso de no necesitar o no querer un certificado con este aval, lo podemos crear nosotros con el siguiente comando:
openssl x509 -req -days 730 -in prueba.csr -signkey prueba.key -out prueba.crt
Luego le damos derecho de lectura solo a root sobre los certificados y con eso está listo nuestro servidor para comenzar a hacer pruebas.
chmod 400 /etc/ssl/prueba.com.uy/prueba.*
Espero que este tutorial les sea de utilidad y como siempre, si tienen alguna duda escríbanme y con gusto les daré una mano.
Read More


