CONFIGURAR SSL EN APACHE

abril 1, 2010 a las 11:44 pm | Publicado en Apache, SSL | 1 comentario

Lo primero es comprobar que tenemos las librerías necesarias en /usr/lib/apache2/modules/.

Debemos tener mod_ssl.so.

Luego debemos comprobar que el módulo de ssl está habilitado para en el apache. Tenemos que crear enlaces en /etc/apache2/mods-enabled de los ficheros /etc/apache2/mods-available/{ssl.conf | ssl.load}.

Reiniciamos el apache para que tomen efecto.

Lo siguiente es modificar el virtual host que tengamos creado de la siguiente manera:

1) Modificar la cabecera para que sólo acepte tráfico por el puerto 443
<VirtualHost *:443>

2) Añadir el nombre y el admin del servidor si no lo están aún:
ServerName <host.dominio.ext>
ServerAdmin <admin@dominio.ext>

Hay que tener en cuenta que el nombre del servidor coincida con el que vamos a utilizar en el certificado.

3) Añadimos las sentencias necesarias para habilitar SSL:
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/server.pem
SSLCACertificateFile /etc/apache2/ssl/server.cer

También lo podríamos haber hecho con la clave (.key) en vez de con el .pem utilizando “SSLCertificateKeyFile”

4) Si queremos que las peticiones HTTP se redirigan a HTTPS añadimos las siguientes líneas al httpd.conf:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]

5) Si existe la referencia “NameVirtualHost *” en el fichero apache2.conf, la debemos eliminar para evitar un error por haber definido el *:443 en el virtual host.

Reiniciamos el apache.

Anexo:

Si queremos especificar que no se habilite el débil SSL v2 modificamos el fichero /etc/apache3/mods-available/ssl.conf añadiendo la siguiente línea (o descomentándola):

SSLProtocol all -SSLv2

Podemos además especificar qué métodos de cifrado queremos que se utilicen con la directiva SSLCipherSuite del mismo fichero.

Por ejemplo con:
SSLCipherSuite HIGH:MEDIUM:!ADH
sólo habilitaríamos los más seguros.

En el caso de tener :

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

El LOW es un método de 128 bits que debemos evitar.
Se puede quitar cualquiera con “!”. Por ejemplo:

SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:!SSLv2:+EXP:+eNULL

Se pueden comprobar los métodos soportados con:

openssl ciphers -v

También podemos ver los que configuraríamos con los parámetros de SSLCipherSuite:

openssl ciphers -v ‘HIGH:MEDIUM:!ADH’

1 comentario »

RSS feed for comments on this post. TrackBack URI

  1. You might not want to try to fix it yourself,
    but it has to connect everyone. These are the levels of the
    people depend on their PCs and Laptops to do most of the computer users.
    It will get your business back up and running again is a wonderful feeling.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.
Entries y comentarios feeds.

A %d blogueros les gusta esto: