Apache con hosts virtuales

Posteado por Dario Fernandez | Linux | Monday 22 June 2009 9:43 pm

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.

VN:F [1.6.3_896]
Te gusto este post?
Rating: 0.0/10 (0 votes cast)

Instalar Apache con soporte SSL

Posteado por Dario Fernandez | Linux | Tuesday 16 June 2009 12:29 am

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.

VN:F [1.6.3_896]
Te gusto este post?
Rating: 7.0/10 (1 vote cast)



Tecnopedia.net - 2009 / Condiciones de Uso / Contacto / RSS
Tecnopedia.net desarrollada bajo licencia Creative Commons Creative Commons License