Vous êtes sur la page 1sur 3

SSL

Generando cerficados SSL para apache:


El primer paso es crear la clave RSA privada. Esta clave es del tipo RSA de 1024 bits y
estar encriptada usando Triple DES y guardada en formato PEM de forma tal que sea
visible como texto ASCII.
Usaremos varios archivos como fuente de numeros aleatorios lo que ayudar a hacer la
clave ms segura. Un buen formato son archivos texto comprimidos en formato gzip. La
clave es generada usando el siguiente comando (file1 a file5 son los archivos a ser
usados para mejorar los numeros aleatorios), en nuestro caso de ejemplo, yo usar dos
archivos binarios. En la vida real les recomiendo poner algunos archivos ms
openssl genrsa -rand /usr/bin/lsattr:/bin/cat -out server.key 1024
26976 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
.........++++++
.......++++++
e is 65537 (0x10001)

Aqu est generada la server.key, la clave privada de nuestro servidor.


Es muy importante mantener una copia de sta clave pues es la base para la encriptacin
usando un certificado. De ser posible mantener un respaldo en un disquete o cinta. El
costo de un certificado,aunque vara, est entre los 30 y los 600usd aproximadamente (al
ao, ver www.nuestroserver.com) y es sumamente doloroso tener que regenerar un
certificado nuevamente por no haber guardado los archivos utilizados para la generacin
de ste.
Ahora procedamos a generar una peticin de certificacin (Certificate Signed Request).
Con esta podremos realizar la peticin de un certificado a la entidad certificadora de
nuestra eleccin. Este es el archivo que se les enva cuando ellos solicitan el CSR. Sin
embargo, tambin podemos hacer que nuestro sistema genere un Certificado
AutoGenerado el cual nos permitir operar de forma segura, pero siempre le sacar a los
clientes una advertencia de que el certificado no puede ser validado en una entidad
certificadora.
En negrita est lo que nosotros debemos ir escribiendo. El ejemplo es para Quito,
Pichincha, Ecuador, pero debe ponerse los datos de su organizacin propiamente dichos.
openssl req -new -key server.key -out server.csr
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) [GB]:EC
State or Province Name (full name) [Berkshire]:Pichincha
Locality Name (eg, city) [Newbury]:Quito
Organization Name (eg, company) [My Company Ltd]:EcuaLinux
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:www.ecualinux.com
Email Address []:info@ecualinux.com
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:

Cuando vayamos a comprar un certificado, enviaremos ste archivo a la entidad


certificadora. Ahora, como esto toma un tiempo y cuesta dinero, procedamos nosotros a
generarnos un certificado autogenerado a partir de estos datos y seguir operando hasta
que idealmente nos llegue el certificado vlido. Este certificado de ejemplo ser vlido por
60 das, podemos poner ms (1400 o algo as) si es que nunca vamos a pedir un
certificado vlido a una entidad certificadora.
openssl x509 -req -days 60 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=EC/ST=Pichincha/L=Quito/O=Ecualinux/OU=IT/CN=Ernesto
Perez/emailAddress=direccionvalida@hotmail.com
Getting Private key

Listo.. ya tendremos nuestro certificado autogenerado.

En el caso de que hayamos solicitado un certificado de autenticidad a


una entidad certificadora:
Es ste certificado el que nos enviara una entidad certificadora para que usemos. Cuado
lo envan, normalmente lo hacen en el cuerpo del mensaje, lo que tenemos que hacer

realmente es crear un nuevo archivo llamado server.crt y pegarle todos los datos que nos
indiquen.

Instalando el certificado en apache


primero verificar que apache y mod_ssl estn instalado, estos dos paquetes son
necesarios para trabajar con ssl en apache:
rpm -q httpd mod_ssl

Si no estn instalados, instalarlo conjuntamente con el php y el mdulo para el manejo de


ssl:
yum install php php-imap php-mysql httpd mod_ssl

probemos que el apache arranque


service httpd restart

Una vez instalado el apache, los certificados SSL estarn activos. Puesto que por defecto
mod_ssl busca en /etc/httpd/conf.d/ssl.conf e intenta usar los certificados nombrados
server.crt y server.key
[root@laptop ~]# cp server.crt /etc/httpd/conf/ssl.crt/
[root@laptop ~]# cp server.key /etc/httpd/conf/ssl.key/
[root@laptop ~]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]

Nota:
Si quisiramos agregar un servidor virtual con ssl, sugiero editar el archivo
/etc/httpd/conf.d/ssl.conf ahi se definen los servidores virtuales en ssl. Tener en
consideracin que el archivo .crt y el .key deben ser diferentes para cada sitio virtual.
Tambin debemos tener en cuenta que apache permite slo un certificado SSL por cada
IP. Esto es, si quisiramos ms de un certificado SSL en el servidor, debemos obtener
ms de una direccin IP para el servidor.
y listo.. ya tenemos nuestro certificado instalado para esa IP del servidor.

Vous aimerez peut-être aussi