SSL en apache2 y ubuntu 12


SSL es un protocolo diseñado para permitir la comunicación segura, cifrando los datos, entre aplicaciones. 

1. Generar las certificados SSL

Lo primero es instalar  openssl:

1
sudo apt-get install openssl

Lo siguiente es generar la clave privada RSA de 1024 bits y usando triple DES:

1
sudo openssl genrsa -des3 -out servidor.key 1024

Ahora, lo que toca es quitar la frase de paso (contraseña) y que no la pida por si tenemos que reiniciar apache. Te pide que introduzcas la frase:

1
2
3
4
5
mv servidor.key servidor.key.old
sudo openssl rsa -in servidor.key.old -out servidor.key
Enter pass phrase for servidor.old.key: <contraseña>
writing RSA key

En este punto, creamos es el certificado y te pide la siguiente información:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sudo openssl req -new -key servidor.key -out servidor.csr
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) AU:ES
State or Province Name (full name) Some-State:Madrid
Locality Name (eg, city) []:Madrid
Organization Name (eg, company) Internet Widgits Pty Ltd: <Tu organización>
Organizational Unit Name (eg, section) []: <Tu departamento>
Common Name (eg, YOUR name) []: <Nombre del servidor en el DNS o Direccion IP>
Email Address []: <email>
#No pongas nada en lo siguiente
Please enter the following ‘extra’ attributes to be sent with your certificate request
A challenge password []: <contraseña>
An optional company name []:

Esto debería hacerlo una  autoridad certficadora (CA). Pero nosotros vamos generar un certificado autofirmado. Los navegadores no reconocerán nuestro certificado, mostrando un aviso de advertencia al usuario, que no reconoce la autoridad certificadora:

1
openssl x509 -req -days 365 -in servidor.csr -signkey servidor.key -out servidor.crt

Ya tenemos los certificado y , para terminar este punto, creamos  la carpeta /etc/apache2/ssly copiamos los ficheros:

1
2
sudo mkdir /etc/apache2/ssl
sudo mv servidor.key servidor.crt /etc/apache2/ssl

 2. Configurando apache

Ahora los que tenemos es que instalar el modulo SSL en apache:

1
sudo a2enmod ssl

Revisas que este descomentado la entrada que hace referencia el puerto 443 en el fichero ”/etc/apache2/ports.conf”

1
2
3
4
5
6
7
8
9
10
11
NameVirtualHost *:80
NameVirtualHost *:8080
Listen 80
Listen 8080
<IfModule mod_ssl.c>
    Listen 443
</IfModule>
<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Ahora, editas el fichero “/etc/apache2/sites-available/default-ssl” , lo configuras según tus instalación y añades el apartado “configuración ssl”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<VirtualHost *:443>
        ServerAdmin <<webmaster@tudomonio>>
  ServerName  <<www.tudominio.com>>
  ServerAlias <<tudominio.com>>
  # Ficheros Index
  DirectoryIndex index.html index.php
  DocumentRoot /rutadominio
# Configuracion SSL
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/servidor.crt
    SSLCertificateKeyFile /etc/apache2/ssl/servidor.key
#Fin configuracion SSL
    <Directory / >
    AllowOverride None
    Order allow,deny
    allow from all
    </Directory>
  # Ficheros Log
  LogLevel warn
  ErrorLog  /turuta/log/error.log
  CustomLog /turuta/log/access.log combined
</VirtualHost>

Para terminar, activas la configuración del sitio con SSL y reinicias el servidor:

1
2
sudo a2ensite default-ssl
sudo service apache2 restart

Acerca de albertoarceti
Administrador de sistemas informáticos, y erps en la industria farmacéutica.

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

A %d blogueros les gusta esto: