El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

certificado autofirmado

| Comments

Ya hemos visto en varios post, que para hacer un servicio con SSL, requerimos un certificado autofirmado. De ahora en lo adelante, no pienso repetir ese proceso, por el contrario, pondré un link a este post.

Una vez creado tu propio certificado, no tendrás que volver a crear uno para cada servicio, simplemente uno para cada host. Por tanto, vamos a crear y almacenar nuestro certificado en /etc/ssl/private/ para usarlo con todos los servicios.

De facto, asumo que tienes el paquete openssl instalado.

“/etc/ssl/private”
1
cd /etc/ssl/private/

Primeros debemo generar una Clave RSA Privada. La clave RSA es la que genera los certificados autofirmados como tal.

“generando la RSA”
1
openssl genrsa -des3 -out privado.key 1024

Te pide un password. Debes ver algo como esto:

“salida”
1
2
3
4
5
.++++++
..............................++++++
e is 65537 (0x10001)
Enter pass phrase for privado.key:
Verifying - Enter pass phrase for privado.key:

Ah! El password no se ve mientras los escribes…

Bueno, ahora generamos el CSR (Certificate Signing Request). Esto se usa para dos cosas: El CSR, es lo que se le envía a una autoridad certificadora (CA) para identificarnos con ella o como es el caso para simplemente, generar certificados autofirmados.

En este proceso, que ya lo hemos visto repetidamente, te preguntarán por aquellos datos que identifican a tu servicio de manera fideligna.

OJO El servidor que especifiques en el FQDN debe machear al hostname que se pida en las peticiones DNS.

“generando el CSR”
1
openssl req -new -key privado.key -out privado.csr

Debes ver algo como esto:

“salida”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Enter pass phrase for privado.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]:CU
State or Province Name (full name) [Some-State]:Havana
Locality Name (eg, city) []:Plaza
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:tuservidor.cu
Email Address []:

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

REPITO Donde dice: “Common Name (eg, your name or your server’s hostname)” Debes poner el hostname por el que será llamado tu server. Por esta razón, los pop3 y los SMTP, suelen generar certificados aparte.

Otra jodedera de los certificados autofirmados, es que siempre piden un password cuando van a ser usados. Para evitar este fenómeno, debemos hacer una burumba y quitarle el password.

“quitando el password”
1
2
cp privado.key privado.key.org
openssl rsa -in privado.key.org -out privado.key

Ya puedes borrar el fichero “privado.key.org” tranquilamente, pero bueno, si lo guardas, nadie se pondrá bravo.

Ahora por fin vamos a generar el dichoso certificado autofirmado. Para generarlo, necesitaremos usar una CA, en este caso, nosotros mismos.

“generando el certificados”
1
openssl x509 -req -days 365 -in privado.csr -signkey privado.key -out privado.crt

Debes ver algo como esto:

“salida”
1
2
3
4
Signature ok
subject=/C=CU/ST=Havana/L=Plaza/O=Internet Widgits Pty Ltd/CN=tuservidor.cu
Getting Private key
Enter pass phrase for privado.key:

El parámetros -days puede saltarse si no quiere que el certificado caduque. Pero en ambientes muy hostiles, donde de verdad se quiere cifrado, es necesario que el ceritificado caduque. Uno nunca sabe que mariconá están planificando los hackers por ahí.

Ahí tienes tu certificado autofirmado ;)

Si este artículo te resultó interesante, considere donar 0.06 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

Comments