Está en la página 1de 2

CONFIGURACIN DE SSL PARA APACHE 2 EN DEBIAN

Apache 2 con SSL en Debian


Para dar un poco ms de seguridad al protocolo HTTP vamos a configurar HTTPS o, lo que es lo
mismo, HTTP sobre SSL, en Apache 2 para Debian.
Afortunadamente, el apache que se incluye a partir de la versin Lenny de Debian ya est casi
todo preparado para usar HTTPS junto con el tpico HTTP, a saber:
En el fichero /etc/apache2/ports.conf ya tenemos configurado el puerto sobre el que
escuchar el servidor seguro, el 443, en caso de cargarse el mdulo SSL de apache.
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>

El sitio web por defecto, /etc/apache2/sites-enabled/000-default, especifica el puerto 80 en


la directiva VirtualHost para distinguir las peticiones HTTP de las HTTPS:
<VirtualHost *:80 >
...
</VirtualHost>

Existe disponible un fichero de configuracin por defecto para el sitio web seguro,
/etc/apache2/sites-available/default-ssl.

Nota: A diferencia de lo que ocurre con HTTP, en HTTPS no se pueden servir fcilmente mltiples
sitios virtuales encriptados con SSL desde una misma IP. La razn est en que SSL trabaja en una
capa inferior a HTTP y no es posible usar la cabecera Host para distinguir los sitios virtuales a
travs del nombre del sitio. (En la configuracin tpica, solo podremos usar un certificado
compartido para todas las pginas que se sirvan por HTTPS desde un nico servidor web, a
menos que usemos una IP diferente para cada sitio)

Por todo ello, solo ser necesario realizar los siguientes ajustes:
1. Activar el mdulo SSL y habilitar el sitio seguro:
# a2enmod ssl
# a2ensite default-ssl

(Por supuesto, como se recomienda tras la ejecucin de estos comandos, habr que recargar el
servidor apache)
2. Modificar el fichero de configuracin del sitio SSL por defecto, esto es, /etc/apache2/sitesenabled/default-ssl.
Nota: Como hemos comentado antes, mientras que podemos aadir a la configuracin de Apache tantos
ficheros de sitios virtuales para HTTP que comiencen por <VirtualHost *:80> como
queramos, para HTTPS, en el puerto 443, solo podremos tener, en principio uno (a menos que
configuremos diferentes IPs para los distintos sitios o usemos alguna solucin avanzada como los
SNI o Server Name Indication)

1/2

CONFIGURACIN DE SSL PARA APACHE 2 EN DEBIAN


Aunque en este fichero se pueden usar prcticamente las mismas directivas que para un sitio
web normal, esto es, sin SSL, es importante saber que las lneas clave para activar SSL son:
SSLEngine on
SSLCertificateFile
/etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Los certificados de snake oil (aceite de serpiente) se generan automticamente tras la instalacin
del paquete ssl-cert de Debian y estn asociados al hostname del sistema. Y aunque se pueden
usar tal y como estn, salvando las advertencias que nos mostrarn los navegadores, lo ms
habitual ser realizar algunos ajustes para personalizar los certificados a usar, por ejemplo,
siguiendo alguna de las siguientes soluciones (sin usar certificados de Autoridades de
Certificacin privadas):
a) Crear un certificado autofirmado (se usa la misma clave tanto para generar el certificado
como para firmarlo) usando el siguiente comando openssl:
$ openssl req -x509 -nodes -newkey rsa:1024 -keyout servidor.key
-out certificado.pem
Nota: Dicho comando generar la solicitud del certificado, solicitando al usuario, de forma
interactiva, los campos estndar del certificado. La mayora de dichos campos son
informativos, pero para un certificado que se usa en un servidor web, el campo Common
Name debera ser el nombre del DNS del servidor que aparecer en la URL de acceso. (De lo
contrario, el navegador del cliente mostrar una alerta de seguridad cuando se compruebe el
certificado del servidor)

b) Usar certificados autofirmados, por ejemplo, generados con el comando make-ssl-cert que
se instala con el paquete ssl-cert de Debian tal y como se describe en el fichero de
documentacin /usr/share/doc/apache2.2-common/README.Debian.gz. (Al menos, con
esta solucin, podremos asociar el certificado a nuestro sitio web)
Nota: Para proteger el acceso a la clave generada pueden ponerse los mismos permisos y
propietarios que los del fichero ssl-cert-snakeoil.key. Solo root debera poder leer este
fichero.

c) Crear nuestra propia autoridad certificadora tal y como se describe en el artculo Creacin
simple de una PKI en Debian. Esto se ver ms adelante en la asignatura de Seguridad.

3. Comprobacin del funcionamiento


Para comprobar si todo funciona correctamente basta con abrir desde el navegador la URL
https://localhost y aceptar las excepciones de seguridad que el navegador pueda presentar.

2/2

También podría gustarte