Certificados s/mime autofirmados (gratis) funcionando en microsoft outlook 2007 y evolution para firmar y encriptar (VERSION B)

Otra manera de hacerlo. Basado en:

http://fsandin.wordpress.com/2009/10/15/crea-tu-propia-entidad-certificadora/

http://www.sslshopper.com/article-most-common-openssl-commands.html

Ventaja de hacerlo de esta manera: creamos una entidad autentificadora propia. Bastará con incluir el certificado público desta entidad certificadora entre las entidades certificadoras de confianza (en la manera anterior de hacerlo había que incluir cada uno de los certificados públicos de los clientes entre las entidades certificadoras de confianza). La difefencia es que en el modo anterior cada certificado se autofirmaba a sí mismo. De la manera que explico a continuación cada certificado irá firmado por una entidad certificadora que he creado previamente.

PREVIO: Primero hay que crear dos archivos llamados config1.txt y config2.txt (aunque creo que para nuestro caso nos bastaría con el segundo, voy a seguir lo que dice el tutorial consultado). Aquí el contenido de ambos:

Contenido de config1.txt

basicConstraints = critical,CA:FALSE

extendedKeyUsage = serverAuth

Contenido de config2.txt:

basicConstraints = critical,CA:FALSE

extendedKeyUsage = clientAuth

1. Crear la entidad certificadora:

openssl req -x509 -newkey rsa:2048 -keyout cakey.pem -days 3650 -out cacert.pem

Lo que significa que estamos creando una nueva entidad que generará certificados X509 con algoritmo de encriptación rsa de 2048 bytes. Generará la clave privada de la entidad en el fichero cakey.pem y la clave publica en el cacert.pem.

El parámetro -days con 3650 indica que la entidad certificadora no expirará en 10 años.

Nos pedirá una contraseña para nuestra entidad certificadora, que es muy importante no perder. Nos pedirá también una serie de datos (País, Nombre de Empresa…), que nos identifica como entidad certificadora.

Este paso sólo es necesario realizarlo la primera vez, o cuando la entidad certificadora que teníamos haya expirado.

Se exporta la clave pública a un formato que pueda ser importado por windows:

openssl x509 -outform der -in cacert.pem -out cacert.crt

2. Generar cada certificado cliente:

openssl genrsa -des3 -passout pass:password -out client-priv.pem 2048

Luego generar la petición de certificado:

openssl req -new -key client-priv2.pem -passin pass:password -subj “/CN=Perico/OU=ServicioTecnico/” -out petic-cert-client.pem

Luego generar el certificado:

openssl x509 -CA cacert.pem -CAkey cakey.pem -req -in petic-cert-client.pem -set_serial 4 -days 3649 -extfile config2.txt -sha1 -out client-cert.pem

“-set_serial 4” es un número de serie del certificado que debe ser distinto en cada certificado cliente.

Luego convertir el certificado a formato p12.

openssl pkcs12 -export -in client-cert.pem -inkey client-priv.pem -certfile cacert.pem -out cert-cliente-pck12.p12

Ese archivo, el cert-cliente-pck12.p12 lleva la clave privada y puede ser utilizado en windows.

This entry was posted in Uncategorized and tagged , , , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s