Cómo generar un certificado SSL autofirmado. #SíAlCifrado | Diario de una Linuxera

Cómo generar un certificado SSL autofirmado. #SíAlCifrado

portada #sialcifrado

Esta semana en Diario De Una Linuxera estamos llevando a cabo una serie de artículos y tutoriales bajo el hashtag de #SíAlCifrado, y hoy vamos a mostrar como firmar nuestros propios certificados SSL a partir de una CA (entidad certificadora) que crearemos nosotros mismos.

 

Antes de empezar, y para quien no lo sepa el protocolo https es aquel que a través de un certificado SSL cifra los datos que enviamos y recibimos a la web de forma que solo nosotros y la web en la que estamos navegando pueden entenderlos, evitando así que cualquier persona pueda ver lo que enviamos a la web (en el caso de usar el clásico http).

 

Para comenzar a firmar nuestros propios certificados SSL solo necesitamos una Shell en nuestro servidor (root a ser posible) y tener OpenSSL instalado (viene por defecto en Debian y otras distribuciones). Comenzaremos por crear nuestra entidad certificadora (CA) con la que firmaremos todos los certificados que queramos.

 

Lo primero es crear un directorio en el que tener nuestra CA y nuestros certificados (en mi caso /root/diariodeunalinuxera.com). Posteriormente crearemos la clave privada de nuestra CA, que bajo ningún concepto debemos compartir con nadie ni mucho menos subir a Internet. Para esto ejecutamos:

 

1
openssl genrsa -aes256 -out ca.key 4096

 

Nuestra clave será de 4096 bits, es decir, tendrá la máxima seguridad posible. Debemos introducir una contraseña, que lógicamente no debemos olvidar.

 

ssl1

 

Ahora crearemos la clave pública de nuestra CA que puede tener la duración que queramos, que en mi caso serán 3650 días (10 años), utilizando el siguiente comando:

 

1
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

 

ssl2

 

Aquí simplemente tenemos que rellenar los datos que nos piden, no tienen porqué ser reales (y mejor si no lo son). Una vez hecho esto ya tendríamos nuestra entidad certificadora preparada para firmar certificados. Ahora crearemos la clave pública y privada de nuestro primer certificado SSL, que firmaremos posteriormente.

 

1
openssl genrsa -aes256 -out diariodeunalinuxera.com.key 4096

 

Al igual que con la CA, nuestro certificado será de 4096 bits para garantizar la máxima seguridad. También deberemos introducir una contraseña (yo suelo poner la misma que en la CA).

 

ssl3

 

Ahora procederemos a crear la clave pública de nuestro certificado, utilizando el siguiente comando:

 

1
openssl req -new -sha256 -key diariodeunalinuxera.com.key -out diariodeunalinuxera.com.csr

 

Simplemente tenemos que decirle la clave que hayamos puesto a nuestro certificado y al igual que en el caso de la CA, ir rellenando toda la información que nos pide. En ‘extra’ atributes lo dejamos en blanco.

 

ssl4

 

Con esto ya tendríamos nuestro certificado hecho, pero ahora tenemos que firmarlo utilizando nuestra CA.

 

1
openssl x509 -req -days 3650 -in diariodeunalinuxera.com.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out diariodeunalinuxera.com.crt

 

Con este comando estaríamos firmando nuestro certificado por 3650 días (10 años) y le estaríamos asignando el número serial 01. Es importante que este número sea distinto en todo los certificados que firmemos o tendremos problemas. Por último introducimos la clave de nuestra CA.

 

ssl5

 

Para dejar nuestro certificado sin contraseña (y poder usarlo así cómodamente) ejecutamos el siguiente comando:

 

1
openssl rsa -in diariodeunalinuxera.com.key -out diariodeunalinuxera.com.key.insecure

 

ssl6

 

Con esto ya tendríamos terminado nuestro certificado SSL autofirmado, que podemos utilizar en el servidor web que tengamos instalado (En mi caso Apache).

 

*Be free, encrypt!

 

#SíAlCifrado

 

 

También puede interesarte...

12
Comentarios...

avatar
8 Hilo de comentarios
4 Hilo de respuestas
0 Seguidores
 
Comentario más reaccionado
Hilo más caliente de comentarios
5 Autores
Cómo cifrar y firmar un correo electrónico. #SíAlCifrado | Diario de una LinuxeraCómo cifrar un dispositivo Android. #SíAlCifrado | Diario de una LinuxeraEl cifrado no es solo cosa de terroristas | Diario de una LinuxeraCómo cifrar dispositivos USB en Debian 8 Jessie. #SíAlCifrado | Diario de una LinuxeraOpenmailbox, K9-mail y APG. Correo cifrado en Android. #SíAlCifrado | Diario de una Linuxera Autores de comentarios recientes
  Suscribirme  
+ Nuevo + Antiguo + Votado
Notificarme de
sli
Invitado/a
sli

No es por decir nada pero uso https everywhere para asegurarme que conecte siempre que pueda de forma seguro y en este caso no esta cifrada la conexión.
Saludos

Franz
Invitado/a

Https everywhere NADA garantiza.
Https everywhere, pertenece a la Electronic Frontier Foundation. Una supuesta fundación que lucha por los derechos de la privacidad en Internet, nada más lejos de la realidad, son ellos mismos quiénes quieren implantar la moneda digital Bitcoin, ése proyecto de risa Tor Project, también pertenece a la EFF, FBI, y demás berracos:
http://redeszone.net/2014/01/03/la-nsa-trabaja-en-un-ordenador-cuantico-para-romper-cualquier-cifrado

sli
Invitado/a
sli

Bueno bien, entonces que hago? me meto en una cueva y me desconecto de todo? Dame alguna alternativa mejor, esta claro que es imposible ser invulnerable y estar 100% seguro pero algo hará, me fio mucho mas de webs a las que acedo vía segura y al menos se lo pongo algo mas difícil para buscar.
Y no entiendo que le pasa a TOR.

Damia
Invitado/a

Os gustara la inciativa de Letsencrypt, pegadle un vistazo

https://blog.damia.net/2015/12/automatizacion-de-lets-encrypt-en-debian/

trackback

[…] Cómo generar un certificado SSL autofirmado […]

trackback

[…] Cómo generar un certificado SSL autofirmado […]

trackback

[…] Cómo generar un certificado SSL autofirmado […]

trackback

[…] Cómo generar un certificado SSL autofirmado […]

trackback

[…] Cómo generar un certificado SSL autofirmado […]