Mi trabajo ha decidido emitir su propia autoridad de certificación (CA) para manejar diferentes aspectos de nuestro trabajo de forma segura sin pagar por los certificados.
- Firmar criptográficamente correos electrónicos
- Cifrar contenidos de correo electrónico
- Acceda a cosas como la empresa basada en el certificado de cliente IRC .
- Revocar automáticamente las claves de ex empleados
Me enviaron un .pemarchivo y no estoy seguro de cómo agregarlo a mi instalación de Ubuntu. Las instrucciones enviadas fueron: "Hacer doble clic en una Mac debería instalarlo".
¿Cómo procedo? ¿Necesito hacer algo con OpenSSL para crear una .key, .csro .crtpresentar?
ubuntu
certificate
trusted-root-certificates
Xeoncross
fuente
fuente

Respuestas:
Instalar una CA
Copie su certificado en formato PEM (el formato que tiene
----BEGIN CERTIFICATE----)/usr/local/share/ca-certificatesy nómbrelo con una.crtextensión de archivo.Entonces corre
sudo update-ca-certificates.Advertencias: esta instalación solo afecta a los productos que utilizan este almacén de certificados. Algunos productos pueden usar otras tiendas de certificados; si usa esos productos, también deberá agregar este certificado de CA a esos otros almacenes de certificados. ( Instrucciones de Firefox , Instrucciones de Chrome , Instrucciones de Java )
Prueba de CA
Puede verificar si esto funcionó buscando el certificado que acaba de agregar
/etc/ssl/certs/ca-certificates.crt(que es solo una larga lista de todas las CA de confianza concatenadas juntas).También puede usar s_client de OpenSSL intentando conectarse a un servidor que sabe que está usando un certificado firmado por la CA que acaba de instalar.
Lo primero que debe buscar es la cadena de certificados cerca de la parte superior de la salida. Esto debería mostrar la CA como el emisor (al lado de
i:). Esto le indica que el servidor presenta un certificado firmado por la CA que está instalando.En segundo lugar, busque
verify return codeal final para establecer0 (ok).fuente
crtcomentario de la extensión, ese fue el secreto para conseguir este trabajo para mí, me dieron un certificado con unacertextensión y estaba confundido sobre por qué nada funcionaba.s_clientno envía SNI de forma predeterminada y el servidor puede necesitar SNI, especialmente si admite hosts / sitios virtuales con diferentes certificados; para este caso agregar-servername foo.whatever.com. O si se trata de un uso del servidor web (versiones modernas de)curlo dewgetSNI automáticamente.man update-ca-certificados :
De lo anterior, deduciría que la forma preferida de obtener archivos de certificados locales en el almacén de confianza es colocarlos
/usr/local/share/ca-certificatesy luego ejecutarlosupdate-ca-certificates. No necesita tocar/etc/ssl/certsdirectamente.fuente
--freshpara que funcione. egupdate-ca-certificates --freshTuve el mismo problema y tuve que copiar el
.pemarchivo/usr/local/share/ca-certificates, renombrándolo como.crt. El.cerarchivo se puede convertir fácilmente.pem, con openssl, por ejemplo, si no tiene el.pem.Después de copiar el archivo debe ejecutarlo
sudo update-ca-certificates.fuente
openssl x509 -inform DER -in certificate.cer -out certificate.crtLas otras respuestas relacionadas
update-ca-certificatesson correctas para las aplicaciones que leen del almacén de certificados del sistema. Para Chrome y Firefox, y probablemente algunos otros, el certificado debe colocarse en el nssdb, el back-end de la biblioteca NSS de Mozilla.Desde https://code.google.com/p/chromium/wiki/LinuxCertManagement :
Donde
<certificate nickname>es arbitrario, y<certificate filename>es su archivo .pem o .crt.Otras referencias útiles:
certutilpágina de manual, que describe los parámetros utilizados anteriormente: https://developer.mozilla.org/en-US/docs/NSS_reference/NSS_tools_:_certutilfuente
mkdir -p $HOME/.pki/nssdb && chmod -R 0700 $HOME/.pki && certutil -d sql:$HOME/.pki/nssdb -N --empty-passwordPara las versiones más recientes basadas en Debian, es posible que deba ejecutar:
NOTA: sudo dpkg-reconfigure ca-certificate llama a update-ca-certificados internamente
Por supuesto, aún deberá copiar el certificado (archivo .crt) en / usr / share / ca-certificados antes de hacer algo de esto :)
fuente
Sobre la base de la respuesta de dwmw2 , puede decirle a las aplicaciones que usan NSS para su administración de certificados que usen el almacén de confianza del sistema.
libnss3de forma predeterminada se envía con un conjunto de certificados de CA raíz (libnssckbi.so) de solo lectura , por lo que la mayoría de las veces debe agregarlos manualmente al almacén de confianza del usuario local ubicado en$HOME/.pki/nssdb.p11-kitofrece un reemplazo directolibnssckbi.soque actúa como un adaptador para los certificados raíz instalados en todo el sistema/etc/ssl/certs.Editar:
Parece que hay más versiones de
libnssckbi.soahí afuera que solo adentrolibnss3. El siguiente es un script para encontrarlos a todos, respaldarlos y reemplazarlos con enlaces ap11-kit:Instrucciones originales:
Para hacer esto, instale
p11-kitylibnss3(si aún no están instalados):Luego haga una copia de seguridad de la existente
libnssckbi.soproporcionada porlibnss3:Finalmente, cree el enlace simbólico:
Para confirmar que funcionó, puede ejecutar
ll /usr/lib/x86_64-linux-gnu/nss/libnssckbi.soy debería mostrar el enlace:Ahora, si agrega un certificado a la tienda de CA usando
update-ca-certificates, esos certificados ahora estarán disponibles para aplicaciones que usan NSS (libnss3) como Chrome.fuente
Como se señaló, varias aplicaciones que usan NSS tienen su propio almacén de certificados. Tal como están las cosas en Ubuntu, debe usarlo manualmente
certutilpara agregar sus CA para cada aplicación, para cada usuario.En otras distribuciones como Fedora, este tipo de cosas Just Works ™ y usted deben presentar un error contra cualquier aplicación que no confíe automáticamente en las CA con las que instala
update-ca-trust.También puede solucionar esto en Ubuntu instalando el
p11-kit-modulespaquete y luego reemplazando el módulo de raíces de confianza incorporado de NSS conp11-kit-trust.so, haciendo un enlace simbólico, por ejemplo, de/usr/lib/firefox/libnssckbi.soa/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.soA continuación, va a obtener las raíces de confianza configurado del sistema, no algunos no modificables queridos. Tenga en cuenta que Ubuntu envía varias copias diferentes de esa biblioteca libnssckbi.so con las raíces de confianza codificadas, ¡y debe reemplazarlas todas!
cf. https://bugs.launchpad.net/ubuntu/+source/nss/+bug/1647285
fuente
sudo find / -type f -name "libnssckbi.so", se encuentralibnssckbi.soen tres lugares:/usr/lib/thunderbird/,/usr/lib/firefox/, y/usr/lib/x86_64-linux-gnu/nss/. Entonces, ¿estás diciendo que debería vincular laslibnssckbi.sotres carpetas a esasp11-kit-trust.so?/usr/lib/x86_64-linux-gnu/nss/libnssckbi.so->/usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.sofuncionó como un CHARM. Pude agregar un certificado/usr/local/share/ca-certificates, ejecutarsudo update-ca-certificatesy PRESTO, Chrome comenzó a aceptar los certificados autofirmados.Respuesta seriamente estúpida para agregar aquí, pero había pasado 2 horas yendo y viniendo con certutils en Linux ... Estaba seguro de que todo estaba correcto:
Pero aún así, en cromo nada funcionaba. Intenté todo, al final ...
Restarting ChromeFue la clave de mi éxito después de seguir: el consejo de Steven Monday
fuente