jueves, 27 de octubre de 2011

Generar certificados autofirmados con OpenSSL


Software is like sex: It’s better when it’s free.
Linus Torvalds.


Tengo la suerte de trabajar en un lugar rodeado de extraordinarios profesionales como compañeros. El artículo que traigo aquí hoy es un resumen de un correo electrónico de uno de ellos que, con su permiso (y sugerencia) he convertido humildemente en otro post más para este blog. Gracias, Josete. Es un placer y un honor trabajar contigo.



Mini How-To: Generar certificados autofirmados con OpenSSL para Apache HTTP Server

-por José Morales Mora.

PASO 1. Generar Clave RSA

Ejecutar:

openssl genrsa -des3 -out server.key 1024

Genera una clave CA para realizar la firma del certificado. Nos pide la clave privada para este certificado. Podemos especificar el tamaño de la clave ( 1024, 2048)

PASO 2. Generar CSR ( Petición de Firma de Certificado)

Ejecutar:

openssl req -new -key server.key -out server.csr

Realiza una petición para la firma con clave privada especificado. Al realizarlo nos pide datos:

Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []: 
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
 

IMPORTANTE: El "Common Name" debe corresponder con la URL que queremos Securizar. Si la URL a poner por SSL es www.paco.es, este campo debe contener exactamente eso.


PASO 3. Eliminar Clave Privada DES3

Ejecutar:

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

Esto es necesario porque en estos casos que tenemos un certificado firmado con clave primaria, Apache HTTP Server pide en cada arranque esa clave para utilizar el certificado. La solución es eliminar la encriptación DES3 para la clave.


PASO 4 . Generar Certificado Autofirmado.

Ejecutar:

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

Con este paso obtenemos el CRT autofirmado preparado para ser utilizado en apache.

PASO 5. Configurar Apache

Para utilizar estos certificados en apache, lo que tenemos que hacer es añadir al Virtual Host que queramos:

SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key



Referencias y más información:

3 comentarios :

  1. (en vez de "por" mejor pon "traducido por")

    http://www.akadia.com/services/ssh_test_certificate.html

    ResponderEliminar
  2. Excelente, lo utilicé en windows 7 y funcionó de maravillas

    ResponderEliminar
  3. Existen varios tipos de certificados SSL según el método de autentificación que se use.
    Verificación de Dominio: Se validará que el dominio para el cual se emitirá el certificado ssl se encuentra registrado por el solicitante. Verificación de Organización: También se verificará que la información emitida para el certificado (nombre, ciudad, provincia, pais) sean datos verdaderos. Verificación Extendida: Además de las anteriores validaciones, se comprobará la existencia legal de la organización y que la misma aprueba la emisión del certificado. Los certificados solo sirven para un único dominio o subdominio, para varios subdominios se deben usar certificados llamados Wildcard.
    CERTIFICADOS SSL

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...
cookieassistant.com