El contenido del artículo
Tutorial: Instalación de Certificados en Ubuntu – Losst
Los certificados SSL se utilizan para la seguridad en una variedad de aplicaciones. Lo más común es navegar por sitios web utilizando el protocolo HTTPS. Hay un pequeño número de certificados raíz de confianza de organizaciones que firman el resto de los certificados de todos los sitios. Estos certificados de confianza se almacenan en todos los ordenadores o smartphones. Y es sobre esta base que el navegador web puede entender que se puede confiar en un sitio en particular.
Sin embargo, si intentas crear tu propio certificado raíz y usarlo para firmar el certificado de tu sitio, verás un mensaje en tu navegador que indica que la conexión no es segura porque estás usando un certificado que no está en la lista de confianza. Otros programas funcionarán de manera similar. Sin embargo, puede agregar su certificado a la lista de confianza en su sistema. En este artículo, veremos cómo instalar un certificado en Ubuntu.
El contenido del artículo
¿Qué necesitaremos?
Quiero mostrarte cómo hacer un certificado de confianza en Ubuntu. Para ello, puede crear su propia autoridad de certificación de CA utilizando EasyRSA, crear y firmar un certificado SSL, como se describe en el artículo sobre la creación de certificados OpenSSL. A continuación, utilice este certificado para el dominio localhost en Apache. Esto le da tres archivos:
- ca.crt – Un certificado raíz de una autoridad de certificación
- localhost.crt – certificado de sitio firmado por una autoridad de certificación;
- localhost.key – Clave de certificado del sitio.
Active el archivo de host virtual Apache para el sitio predeterminado con el siguiente comando:
sudo a2ensite default-ssl
A continuación, abra este archivo y busque las siguientes líneas:
En el caso de la SSLCertificateFile Debe pasar la ruta de acceso al certificado de sitio, por ejemplo, localhost.crt, y para SSLCertificateKeyFile – La clave de certificado del sitio. Por ejemplo localhost.key. Si los certificados están en la carpeta /etc/apache/ssl, la configuración tendrá el siguiente aspecto:
Después de eso, debe reiniciar Apache:
sudo systemctl restart apache2
Ahora está listo para hacer todo lo que se describe a continuación en su sistema.
Instalación de certificados en Ubuntu
1. Instalación en el sistema
Si intenta usar los certificados que firmó para habilitar HTTPS en un servidor web y, a continuación, abre el sitio web con un navegador o realiza una solicitud de línea de comandos, recibirá un error SSL que indica que el certificado no es de confianza y que es posible que la conexión al sitio no sea segura.
curl -I https://localhost
Para que un certificado sea de confianza en el sistema, debe agregar el certificado raíz de la autoridad de certificación con la que se firmó a la lista de certificados de confianza. Si se trata de un certificado autofirmado, puede agregarlo a la lista de certificados de confianza.
Y así, tienes un certificado ca.crt. Para que el sistema lo considere de confianza, debe copiarlo en una carpeta /usr/local/share/certificados de ca:
cp ./ca.crt /usr/local/share/ca-certificates/losstca.crt
Después de eso, debe ejecutar el siguiente comando:
sudo update-ca-certificates
A continuación, puede verificar que el sistema acepta el certificado como de confianza ejecutando el comando curl:
Sin embargo, este método solo funcionará para los programas que utilizan el almacén de confianza del sistema. Los navegadores web, como Firefox y Google Chrome, tienen sus propios almacenes de certificados y no utilizan el almacenamiento del sistema, por lo que debe importar los certificados por separado en cada navegador. De lo contrario, obtendrá el siguiente error:
Chrome, Firefox, Thunderbird usan nssdb para trabajar con certificados. Esto significa que puede importar certificados tanto en la GUI del navegador como en el terminal, utilizando la utilidad certutil. Echemos un vistazo a cómo hacerlo. Echemos un vistazo a cómo instalar un certificado en Ubuntu.
2. Instalación en Google Chrome
Para agregar un certificado a Google Chrome o Chromium en la interfaz gráfica, abra la configuración desde el menú principal:
Vete a Privacidad y seguridad -> Seguridad -> Configurar certificados:
En la ventana que se abre, vaya a la Autoridades de certificación:
Aquí tienes que hacer clic en el botón Importación y seleccione el archivo de certificado raíz:
A continuación, debe configurar los ajustes de confianza. Dado que ahora se utilizará el certificado para confirmar la autenticidad de los sitios, podemos dejar solo el primer punto:
Después de esoSe agregará el certificado y ya no verá información de que la conexión no es segura.
En la línea de comandos, todo también es bastante simple. Para trabajar con certificados, necesitará el atributo libnss3-herramientas, configúrelo con el comando:
sudo apt install libnss3-tools
La base de datos de certificados de Google Chrome se encuentra en el ~/.pki/nssdb. Puede ver los certificados disponibles con el equipo:
certutil -d ~/.pki/nssdb -L
La sintaxis del comando para agregar un certificado es la siguiente:
$ certutil -d ruta/a/base de datos/datos -A -t «trust_settings» -n «Nombre» -Yo «/ruta/a/archivo»
Preste atención a la configuración de confianza. Hay tres grupos de atributos de confianza:
- Para SSL;
- Para correo electrónico;
- Para software y otros objetos.
Cada uno de los grupos puede contener los siguientes atributos:
- p – fiesta válida;
- P – Un festín de confianza;
- c – Autoridad de certificación válida;
- C – Autoridad de certificación de confianza
- T – Una autoridad de certificación de confianza para la autorización del cliente.
Para los certificados SSL, puede utilizar la siguiente secuencia «TC,,». Es decir, los atributos T y C para SSL y nada para todo lo demás. Todo el comando para importar ca.crt se verá así:
certutil -d sql:~/.pki/nssdb -A -t "TC,," -n "Losst CA" -i ./ca.crt
Después de eso, puede volver a mirar la lista de certificados para asegurarse de que todo está bien:
certutil -d sql:~/.pki/nssdb -L
El certificado está ahí, y después de eso, el navegador lo considerará de confianza. Los certificados agregados en la GUI también se agregan aquí. Ahora ya sabes cómo instalar certificados raíz de Ubuntu.
3. Instalación en Firefox
En Firefox, las cosas son un poco más complicadas. No existe un repositorio centralizado para los certificados, por lo que tendrás que añadirlos para cada perfil por separado, tanto en la GUI como en la línea de comandos. Para agregar un certificado en la GUI, abra Configuración En el menú principal:
A continuación, vaya a la Protección y seguridad y encontrar el artículo allí Certificados. Aquí tienes que hacer clic en el botón Ver certificados:
En la ventana que se abre, vaya a la Autoridades de certificación y haga clic en el botón Importaciónpara agregar su certificado. A continuación, seleccione el archivo de certificado y establezca la configuración de confianza. Al menos la primera marca debe estar marcada: Confianza a la hora de identificar sitios web:
Esto completa la instalación del certificado SSL en Firefox. Si desea agregar un certificado en la línea de comandos, debe agregarlo a todos los perfiles. Los perfiles se encuentran en el archivo ~/.mozilla/firefox/. En este ejemplo, hay dos perfiles y solo uno de ellos está lleno:
Los archivos nssdb se encuentran directamente en la carpeta de perfil, por lo que simplemente puede pasar esta carpeta a certutil. Por ejemplo, para ver una lista de certificados, ejecute:
certutil -d ~/.mozilla/firefox/k9z8sttc.default-release/ -L
Para agregar un certificado, use el siguiente comando sustituyendo la ruta de acceso a la carpeta de perfil:
certutil -d ~/.mozilla/firefox/k9z8sttc.default-release/ -A -t "TC,," -n "Losst" -i ./ca.crt
Después de eso, el certificado recibido aparecerá en la lista.
Tenga en cuenta que esto funciona para Firefox instalado como .deb paquete. Si tiene Firefox instalado usando el administrador de paquetes instantáneos, es posible que este método no funcione.
Para Firefox, hay otra forma de agregar certificados desde el sistema automáticamente sin usar certutil. Se trata de la carga de certificados mediante una política. Es posible que hayas oído hablar de la security.enterprise_roots.habilitado en about:config. Solo funciona en Windows y MacOS, pero no en Linux. Sin embargo, puede crear un archivo de política en el archivo /usr/lib/firefox/distribución/ Y allí anotar qué certificados se deben cargar. De forma predeterminada, Firefox buscará certificados en los siguientes directorios:
- /usr/lib/mozilla/certificados
- /usr/lib64/mozilla/certificados
- ~/.mozilla/certificados
En el propio archivo, debe especificar los nombres de los archivos de certificado, si se encuentran en una de estas carpetas, o la ruta de acceso completa a ellos. Por ejemplo, copie el certificado de CA en el archivo /usr/lib/mozilla/certificados:
cp ~/easy-rsa-ca/ca.crt /usr/lib/mozilla/certificates/losst.crt
Se admiten certificados ASCII (CRT/PEM) y binarios (DER). A continuación, cree un archivo de política con el siguiente contenido:
sudo vi /usr/lib/firefox/distribution/policies.json
{
"policies": {
"ImportEnterpriseRoots": true,
"Certificates": {
"Install": (
"losst.crt",
)
}
}
}
Reinicia tu navegador y Firefox debería empezar a ver tu certificado.
Resultados
En este artículo, hemos visto cómo instalar un certificadoUbuntu, así como cómo agregarlos a los navegadores más populares. Como puedes ver, no existe una solución única para todos, pero todo se puede personalizar.