martes, 24 de noviembre de 2009

Apache 2 con SSL

Apache 2 con soporte SSL en Linux Debian / Ubuntu , web https ssl navegación segura.

El primer paso que tendremos que hacer será generar un certificado SSL para nuestro Apache.

Instalaremos los paquetes necesarios:

# aptitude install openssl


Activamos el módulo SSL en nuestro Apache:

# a2enmod ssl

Creando el certificado:

Creamos la clave privada RSA, para equilibrar entre seguridad y compatibilidad será de fotaleza 1024 bits:

# openssl genrsa -out servidor.key 1024

Protegemos la clave privada quitando privilegios:

creamos el certificado sin cifrar para que cada vez que se inicie el apache no nos pida la clave de acceso:

# openssl req -new -x509 -nodes -sha1 -days 365 -key servidor.key -out servidor.crt

Respondemos a las preguntas del estándar X.509.

Unimos la clave y el certificado para que pueda ser utilizado por apache:

# cat servidor.crt servidor.key > servidor.pem
# rm servidor.key

Protegemos la clave privada quitando privilegios:

# chmod 400 servidor.pem

Creamos los directorios donde pondremos la clave y el certificado para el apache:

# mkdir -p /etc/apache2/ssl
# mkdir -p /etc/apache2/crt

Moveremos la clave y el certificado en dichos directorios:

# mv servidor.pem /etc/apache2/ssl
# mv servidor.crt /etc/apache2/crt


Ahora crearemos un sitio web de ejemplo que utilice SSL:

Crearemos los ficheros del ejemplo:

# mkdir -p /var/www/ejemploSSL
# echo Esta es una web de ejemplo con SSL > /var/www/ejemploSSL/index.html

Crearemos el site del ejemplo:

# nano /etc/apache2/sites-available/ejemploSSL

En en fichero ejemploSSL introduciremos:

 
        ServerName tuservidor.com
        ServerAlias tuservidor
        SSLEngine on
        SSLCertificateFile    /etc/apache2/crt/servidor.crt
        SSLCertificateKeyFile /etc/apache2/ssl/servidor.pem
        DocumentRoot /var/www/ejemploSSL/
       
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
       

        ErrorLog /var/log/apache2/ejemplossl-err.log
        TransferLog /var/log/apache2/ejemplossl-transfer.log


Guardaremos y cerraremos el fichero.

Ahora habilitaremos el site:

# a2ensite ejemploSSL

Recargaremos la configuración del apache:

# /etc/init.d/apache2 force-reload

ó

# service apache2 force-reload


Comprobaremos la dirección:

https://nuestro_host/ejemploSSL

Nota: recordad abrir el puerto 443 (SSL) a vuestro firewall para que funcione!


Ya tenemos nuestra site con SSL ;-)

1 comentario:

  1. Una guía genial, muy bien comentado todo.Muchas gracias!!

    Sólo un apunte... en el último apartado: comproBaremos
    ;D

    Un abrazo!

    ResponderEliminar