Inicio
viernes, 09 enero 2009
Certificados digitales con OpenSSL
Tag it:
Delicious
Slashdot
Digg
Meneame
BM
Fresqui
Neodiario
Escrito por Martin Kenneth Lopez   
15.07.2006


OpenSSL
nos provee de una infraestuctura de cifrado y certificación digital que podemos aprovechar para cosas tan diversas como cifrar comunicaciones, autentificar los dos extremos de la conexión, estampas de firma de tiempo(timestamp) y firma de código.

En este nanohowto, vamos a ver como crear nuestra propia entidad certificadora y nuestros certificados que podemos usar para nuestros servicios ftp,imap,smtp,web,etc

Configuración y uso de openssl

Openssl se configura mediante el archivo /etc/ssl/openssl.cnf , donde podemos especificar las carpetas donde queremos que se guarden los certificados y las claves e información que incluiremos en los certificados en la sección req_distinguised_name.

Para usar openssl, usaremos alguno de los scritps se encuentran bajo la carpeta misc de ssl(normalmente /etc/ssl pero puede que no sea esa), CA.pl y CA.sh, que no son más que scripts para manejar más fácilmente el comando openssl. Seguramente en nautopia acabemos publicando un manual de openssl, de momento usaremos los scripts que es más faćil.

Creación de una autoridad certificadora

Para que los certificados tengan validez en todo el mundo(o casi), los que generemos tienen que estar firmados por una entidad certificadora válida también en todo el mundo. Es decir, que se encuentre en el almacén de certificados de la mayor parte de sistemas operativos para que los clientes puedan validar la autenticidad de los certificados de servidor. Tenemos varias opciones, podemos comprar los certificados firmados por una compañia como verisign o usar una como CAcert que nos provee de certificados ráiz y de cliente gratuitos(aunque todavía este certificado no aparece en todos los almacenes de confianza, se está estudiando incluirlo en Linux). Si los certificados van a ser para uso interno, donde podamos instalar el certificado de nuestra CA(autoridad certificadora) en todos los clientes en los que queramos usar los mecanismo de openssl, podemos crear nuestra propia CA con sus correspodientes certificados fácilmente mediante el script CA.pl, que se encuentra en la carpeta /etc/ssl/misc

 

    Código:

  • misc/CA.pl -newca

Respondiendo las preguntas crearemos un certificado en /etc/ssl/demoCA/cacert.pem y una clave privada en /etc/ssl/demoCA/cakey.pem que usaremos para firmar los certificados cliente que generemos. Si introducimos una contraseña, debermos usarla cada vez que queramos usar este certificado para fimar una petición de certificado.

Creación de certificados cliente/servidor

Tenemos que generar una petición de certificado para cada cliente(o configurar la opción unique_subject en openssl.cnf). Lo podemos hacer con el comando

 

    Código:

  • misc/CA.pl -newreq

para crear una petición newreq.pem. Después de esto la firmamos

 

    Código:

  • misc/CA.pl -sign

y ya tenemos un archivo newcert.pem que contiene nuestro certificado y nuestra clave. Si necesitamos tener la clave en un fichero aparte(por ejemplo, para usarla en un servicio como imap), la extraemos con el comando openssl

 

    Código:

  • openssl -rsa < newcert.pem > newkey.pem

Con lo que ya tenemos un certificado newcert.pem y una clave newkey.pem que podemos usar y por supuesto renombrar al nombre que queramos.

También disponible en formato pdf: aquí

Año 2004.
Por davidfm.

Fuente: FentLinux

Recomiende este artículo...

 
No está autorizado a dejar comentarios - Por favor, ingrese como usuario.