Cómo añadir un nuevo certificado raíz a nivel de sistema

Publicado el 29 octubre 2015 por Gaspar Fernández Moreno @gaspar_fm

Es muy común si montamos algún servicio privado (como instalar un Owncloud para un grupo de amigos, una pequeña empresa), un correo personal, o cualquier cosa que se nos ocurra, utilizar http s para las conexiones y, con ello, habilitar cifrado, aumentar la seguridad, y todas esas cosas.

Pero claro, una vez montamos nuestro servicio con nuestros certificados (autofirmados), nos damos cuenta de que los navegadores (y ya no hablamos de curl, wget y otros comandos...) no paran de quejarse porque los certificados están firmados por una entidad no reconocida y que no es de confianza. Vamos, que quieren que paguemos por un certificado. Los precios son muy dispares, van desde 4 ó 5 dólares hasta cientos o miles de dólares norteamericanos. Bueno, dentro de poco podremos utilizar Let's encrypt para estas cosas. Pero, aún así puede que nos interese esto.

El caso es que queremos que nuestro sistema nos reconozca como autoridad certificadora (o entidad emisora, depende de la traducción).

Para ello tenemos dos métodos, uno mejor que otro, pero ambos válidos. Aunque este método no nos servirá por ejemplo, para navegadores (Chrome, Firefox y demás utilizan un repositorio de certificados propio, aunque hay maneras de unificarlos). Pero, por ejemplo, nos servirán para utilizar wget, curl, montar un directorio webdav, etc.

Copiarlo a /etc/ssl/certs/ (proceso artesano)

Necesitamos privilegios de superusuario (root) para ello, pero podemos copiar el certificado a este directorio. Y después generar el número de serie como validación de la siguiente forma (dentro del directorio /etc/ssl/certs/ y como root:

# ln -s micertificado.crt `openssl x509 -hash -noout -in micertificado.crt`.0

y es recomendable también añadir el contenido de tu certificado al archivo /etc/ssl/certs/ca-certificates.crt

Proceso automático

Para hacer el proceso de la forma más automática posible, y además, tener un poco más de control sobre los certificados que generamos. Lo que tenemos que hacer es copiar el archivo de nuestro certificado (o nuestros certificados) a /usr/local/share/ca-certificates/ , una vez allí, ejecutamos como root:

# update-ca-certificates

y se deberían crear los enlaces en /etc/ssl/certs, generar los números de serie y concatenar en ca-certificates.crt automáticamente.

Foto: Peter Lloyd ( Unsplash)