Configurar apache con múltiples dominios con SSL

En debian, es tan sólo activar un ajuste en /etc/apache2/ports.conf:

<IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443
</IfModule>

Eso sí, habrá que cambiar también a NameVirtualHost *:443 (el * en lugar de _default_) en el host SSL por defecto: /etc/apache2/sites-available/default-ssl

A partir de ahora podremos crear un VirtualHost: <VirtualHost *:443> con su ServerName, ServerAlias y DocumentRoot con estos parámetros adicionales:

SSLEngine on
SSLCertificateFile {ruta al certificado}
SSLCertificateKeyFile {ruta a la llave}
SSLCertificateChainFile {ruta al certificado intermedio}

Subdominio dinámicos II

Como ya ha habido dos lectores que se han puesto en contacto conmigo por lo mismo: Como crear subdominios dinámicos, publico esta pequeña entrada aclaratoria. Esta solución me la ha pasado uno de mis lectores Manuel Fernández a quien se la ha pasado Diego Barreto, gracias a ambos.

Voy a aprovechar parte de mi post «Usando mod_rewrite para redireccionar subdominios» y los correos que me han llegado para crear un pequeño post «frankenstein» de copia-pega un poco arreglado. Si hay errores ruego me aviséis y trataré de corregirlos en la mayor brevedad posible.

En ocasiones queremos que de forma dinámica cualquier subdominio de nuestro dominio (por ejemplo: cualquiercosa.serhost.com) apunte a un sitio concreto dependiendo de algo que programemos nosotros. Para ello debemos redirigir todos los subdominios hacia nuestra IP, tener soportado mod_rewrite y poder crear un archivo .htaccess.

Por ejemplo, si al registrar al cliente PEPITO en un gestor, este podría entrar mediante la web: www.midominio.com/cliente.php?cod=pepito y puede ser interesante que también pueda entrar mediante: PEPITO.midominio.com por motivos de comodidad.

Leer más

mod_autoindex de apache

mod_autoindex es un módulo de apache que nos permite mostrar un listado de archivos y directorios de un directorio cuando no hay un fichero index predeterminado (o si bien queremos mostrar este listado y obviamos este index).

La documentación de este módulo, puede encontrarse en: http://httpd.apache.org/docs/1.3/mod/mod_autoindex.html

A continuación pongo un ejemplo de un archivo .htaccess que añade una cabecera y un pie al listado, además, añade descripción a los distintos archivos:

Opciones (convertir iconos en parte del link, que coja anchos de las descripciones de forma automática y muestre primero las carpetas y luego ordene por fecha de modo que los archivos más recientes se encuentren al final):

IndexOptions +IconsAreLinks
IndexOptions NameWidth=* DescriptionWidth=*
IndexOptions +FoldersFirst
IndexOrderDefault Ascending Date

Añadir descripciones a los ficheros:

AddDescription "Instrucciones de instalación del programa" LEEME.txt
AddDescription "Aplicación" aplicacion.tar.gz

Añade una cabecera (en lugar de: Index of diretory/)

HeaderName cabecera.html

Añade el pie de página

ReadmeName LEEME.txt

Lo bueno de este sistema es que podemos integrar el diseño de nuestro sitio (y más si usamos CSS) con el listado de archivos predeterminado de apache.

Conflicto: No usar svn + mod_evasive

Cuidado, me he dado cuenta mirando el log de errores de mi apache2, tan contento como estaba con mod_evasive (lo había configurado con muy pocas páginas para que si una araña de spam accedía muy rápido a esta web o bien una araña de M$ que también gasta mucho ancho de banda se les prohibiese el acceso).

Problema: Si usas SVN (mod_dav, mod_svn…) te prohíbe el acceso, el motivo es evidente: Demasiadas peticiones cuando el repositorio es minimamente grande.

Podía leer una línea en el log que decía:

[Tue Oct AA XX:YY:ZZ BBCC] [error] [client X.Y.Z.T] client denied by server configuration: /AAA/BBB/CCC

He probado a quitar el mod_evasive y bingo! ya no hay un 403 PROPFIND (porque no estoy detrás de ningún proxy ni nada).

Si tengo que prescindir de algo, creo que de mod_evasive y ya intentaré configurar en QoS o con iptables lo que necesite o incluso mirando que más opciones tiene el propio mod_evasive.

Es debido a que mod_svn recibe muchas peticiones de un cliente (para sincronizar el repositorio), con lo que si está configurado para permitir pocas paginas por minuto, te bloqueará el acceso.

Desconozco si se puede filtrar por directorio o hacer alguna configuración distinta para donde tengas montado el svn.

Usando mod_rewrite para redireccionar subdominios

En este caso hace algún tiempo, me pidieron un .htaccess que mediante el uso de mod_rewrite permitiera que cualquier subdominio (por ejemplo: http://cualquiercosa.serhost.com) apuntase a una carpeta del dominio (ejemplo: http://serhost.com/pruebas/).

El motivo para hacer esto era que tenían un script que querían que fuese usado por todos los subdominios, imaginémonos un foro y que según el subdominio eligiese una base de datos u otra (para que fuese un foro de una u otra cosa). Las modificaciones al script de un foro (de un phpbb por ejemplo) son bastante reducidas (modificar un poco el config.php y poco más para según el subdominio hacer una u otra cosa).

De este modo la actualización del script en caso de un fallo de seguridad, sólo tendría que hacerse una vez y además no tendrías que tener múltiples copias del mismo script ocupando espacio.

A continuación el como lo hice…

Leer más

Compresión gzip sobre http para mejorar la velocidad

Si tienes tu propio servidor esto quizás pueda interesarte para consumir menos ancho de banda, o en mi caso, que las páginas al servirlas, ocupen menos y por tanto se carguen más rápido. Una técnica conocida desde hace tiempo pero que no he probado hasta ahora debido a que no me había entrado curiosidad hasta que haciendo un programilla descubrí que diciéndole a cierto servidor que yo era IE y que aceptada compresión gzip, me devolvía la página comprimida.

Buscando por ahí, encontré el modo de hacerlo en apache (gracias a lo cual haré antes pruebas en mi servidor antes de seguir con el programa).

Leer más