Certificados SSL para nuestra Biblioteca local

Nuestra biblioteca local (Apocalipsis) tiene la vocación de expandirse, por lo menos para llegar a unos cuantos vecinos por wifi y cable ethernet, pero para hacer esto nos enfrentamos a un grave problema:
Cuando te conectas a por ejemplo https://videos.mi.local, te salta un espeluznante aviso de firefox/chrome/edge que te dice que no te conectes a esta página porqué no es segura.
Esto ocurre porqué nadie en el mundo conoce la Autoridad de Certificación (C.A) del dominio «mi.local» dado que acabo de crearla y sobretodo no es una empresa comercial. Todo es gratis por la gloria de Dios, pero aquí en el mundo civil el dominio mi.local no cuenta nada mientras que exista internet como la conocemos hoy por hoy.

El problema no sería grave si se pudiese seguir utilizando HTTP (sin la S de SSL). Pero ahora es imposible si no en casos muy puntuales dado que todas las aplicaciones y navegadores requieren HTTPS (o sea con certificado SSL para criptar el tráfico de red).
La cosa es buena porqué de lo contrario nuestras contraseñas viajarían en claro por cable y por wifi… y con un simple «sniffer» cualquiera podría recuperar tu nombre y contraseña analizando el trafico.
Al mismo tiempo los certificados SSL molestan porqué tienen que ser «firmados» por una autoridad reconocida… y por reconocida quiero decir que sus Certificados de Autoridad (C.A) están instalados por defecto en windows, linux, android, iphone, osx, *bsd…

Está claro que el certificado de «mi.local» no viene por defecto en ningún otro sistema, pero esto no es un problema. Solo hay que añadir un paso más e instalar el certificado de mi.local en los dispositivos que se conecten por wifi o por cable.
Se trata de un «simple» fichero de pocos kb que hay que copiar en el dispositivo e añadirlo a la lista que viene por defecto.
Así que lo que tenemos que hacer es distribuir el certificado SSL para que la gente se lo instale antes de conectarse y así no le saldrá ninguna alarma que asusta a la gente.

Está claro que en lugar de instalar el certificado puedes ignorar el aviso del navegador e aceptar los «riesgos» de que la web sea fraudulenta… que no lo es, dado que es tuya. Solo te lo pide una vez y una vez aceptado el aviso, ya no volverá a saltar.

Funciona así: Hay una Autoridad que crea un certificado original, y se usa este para crear otros certificados de dominios.

cuando tu navegador se conecta a una web, recibe el certificado de la web, o mejor dicho del dominio de esta web en concreto.
Este certificado está basado en otro original, que en nuestro caso es YunoHost, el motor que permite de forma fácil que Apocalipsis funcione. Pero este certificado de Yunohost ha sido generado en la misma maquina original cuando cree apocalipsis la primera vez.

Volviendo la navegador… ha recibido el certificado de por ejemplo www.mi.local, analiza el certificado y descubre que la Autoridad del certificado original es Yunohost, pues entonces mira en su archivos si hay un certificado de yunohost. Si no lo encuentra saltan las alarmas y bloquea la web www.mi.local.
(Bloqueo que puedes saltarte en la mayoría de los casos, pero que asusta a la gente.

Pero si en su lista de Autoridades de Certificación hay una que coincide, entonces todo sigue adelante como siempre.

Por esto lo ideal es pasar a tu vecino o pariente el certificado de Yunohost, para que se lo instale en sus dispositivos y evitar molestias.

De todas formas sea que uses el certificado, que no lo uses, la conexión estará cifrada y por lo tanto segura.

Para instalar el certificado tienes que descargarlo desde :

Se trata de un fichero muy pequeño así que no tardará nada a descargarse, y una vez que lo tengas en tu carpeta de Descargas tienes que seguir estos pasos según donde lo queras añadir:

Firefox

Este navegador usa su propria lista de certificado así que hay que añadir el nuevo directamente desde Firefox, y para esto entra en el menú Ajustes busca en el motor interno «certificados»

Luego pulsa en la pestaña Autoridades, pulsa el botón Importar, selecciona en certificado yunohost_ca.pem en tu carpeta de descargas y pulsa en los 2 checks así:

y ahora si miras en la lista, te va aparecer «mi.local»

Chrome

En Chrome es muy parecido. Vete en el menú Configuración, en el campo de búsqueda pon «Certificados» -> Seguridad -> Gestionar certificados -> Entidad Emisora -> Botón «Importar»

Selecciona en descarga el certificado yunohost_ca.pem y dale estos permisos

Android

Descarga en certificado yunohost_ca.crt (en Android requiere en normalidad los certificados en formato .crt)

luego vete en Ajustes y buscar «certificados», Te saldrá algo parecido a esto (puede variar según la versión de Android)

Pulsa en la opción «Certificado AC» y te sale un mensaje como esto… a mi me sale en negro supongo porqué tengo el tema oscuro en Android, para ahorrar bateria. Supongo que es un mensaje de aviso que te informa que la operación tiene que ser hecha solo con certificados de una empresa de confianza… confías en ti mismo? Pues adelante!

Ahora solo tienes que seleccionar el certificado que has descargado. Yo para hacer prueba he descargado los dos formatos en .crt y .pem, pero al final me ha acepta solo el .crt. Si miras en la foto el .crt tiene el icono de huella digital, lo cual lo identifica como certificado

Y con esto ya has terminado. Te va a salir un aviso parecido a este (el segundo a bajo) que puede descartar… y ya puedes navegar

iPhone… de momento no se como se hace porqué no tengo ninguno, pero supongo que es algo parecido a como se hace en Android.
Además el iPhone no es un móvil para usar cuando estamos en situaciones complicadas como las que vamos a ver en poco tiempo.

Comentarios cerrados.