Tabela de Conteúdos

P�gina desactualizada Esta p�gina contiene una versi�n anterior de esta gu�a que puede estar desactualizada. Para ver la versi�n m�s reciente, haga clic aqu�.

3.5.1 Certificados SSL auto-firmados

Objetivo

Para establecer una conexión segura y de confianza es necesario generar certificados que respalden la identidad del servidor. Estos certificados son generalmente emitidos por entidades certificadoras (Certificate Authority) independientes y de confianza reconocida. Sin embargo, para una utilización más casera y económica, es posible crear un certificado “auto-firmado”.

Instalación

root@server:~# aptitude install openssl ca-certificates

Generación de los certificados

La generación de un certificadoSSL requiere de los siguientes pasos: primero es generada una clave privada; en seguida ésta es usada para generar un pedido de certificación (Certificate Signing Request (CSR)). El pedido de certificación es entonces enviado a la entidad certificadora (Certificate Authority (CA)) que devuelve el certificado firmado. Es posible ahorrarse el último paso, generando un certificado auto-firmado (Self-signed Certificate).

Crear una carpeta de trabajo:

root@server:~# mkdir certs
root@server:~# cd certs
root@server:~/certs#

Clave privada

Generar una clave privada(Private Key) encriptada:

root@server:~/certs# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
.................+++
................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

Clave privada sin contraseña

La clave privada está encriptada y protegida por una contraseña, lo que implica que ésta debe escribirse cada vez que un servicio necesite la clave. Como solución, es posible generar una versión de la clave sin la protección de la contraseña:

root@server:~/certs# openssl rsa -in server.key -out server.key.insecure
Enter pass phrase for server.key:
writing RSA key

Esta clave sin contraseña, debe ser almacenada con especial cuidado y sólo debe ser accesible por el usuario root:

root@server:~/certs# chmod 600 server.key.insecure

Pedido de certificación

Para generar un pedido de certificación (Certificate Signing Request), debe indicarse en el campo Common Name el nombre del servidor para el cual será generado el certificado. En caso de que un certificado sea requerido por varios servidores del mismo dominio, es posible usar la sintaxis *.home.lan:

root@server:~/certs# openssl req -new -key server.key -out server.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]:PT
State or Province Name (full name) [Some-State]:Portugal
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Home Lan
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:*.home.lan
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Certificado auto-firmado

El pedido de certificación debería ser enviado a la entidad certificadora, que devolvería el certificado firmado. En este caso, será utilizado para crear un certificado (Self-Signed Certificate), válido por 365 días:

root@server:~/certs# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=PT/ST=Portugal/O=Home Lan/CN=*.home.lan
Getting Private key
Enter pass phrase for server.key:

El proceso de creación de los certificados concluyó. Al final, fueron generados los siguientes archivos:

Archivo Descripción
server.key A chave privada
server.key.insecure La clave privada sin contraseña
server.csr El pedido de firma del certificación
server.crt Al certificado auto-firmado

El certificado auto-firmado es válido por 365 días, pero puede ser renovado en cualquier momento, al regenerar el certificado auto-firmado.

Instalación de la clave privada y del certificado auto-firmado

Para esto, debe copiarse las claves privadas en /etc/ssl/private y el certificado en /etc/ssl/certs:

root@server:~/certs# cp server.key server.key.insecure /etc/ssl/private/
root@server:~/certs# cp server.crt /etc/ssl/certs/

Así, el certificado auto-firmado está listo para utilizarse.

Como se trata de un certificado auto-firmado, su utilización siempre dará origen a un aviso por parte de la aplicación cliente:

Referencias