Agregar autoridades de certificación en todo el sistema en Firefox

21

Quiero agregar algunas CA raíz que no vienen con el Firefox predeterminado en Ubuntu, pero no sé cómo.

Intenté agregarlos a los certificados locales con certutil , pero no funcionó. Echó a perder mi base de datos de certificados.

$ certutil -A -d .mozilla/firefox/kek3dogy.default/ -i /usr/local/share/ca-certificates/FNMT_ACRAIZ.crt -n "Certificado Raiz FNMT" -t "TCu,Cuw,Tuw"

y luego

$ certutil -L -d .mozilla/firefox/kek3dogy.default/

Certificate Nickname                                         Trust Attributes
                                                             SSL,S/MIME,JAR/XPI

Go Daddy Secure Certification Authority                      ,,   
VeriSign Class 3 Secure Server CA - G3                       ,,   
VeriSign Class 3 Extended Validation SSL CA                  ,,   
DigiCert High Assurance CA-3                                 ,,   
GlobalSign Domain Validation CA - G2                         ,,   
GeoTrust SSL CA                                              ,,   
StartCom Class 2 Primary Intermediate Server CA              ,,   
Google Internet Authority                                    ,,   
Certificado Raiz FNMT                                        CT,C,c
USERTrust Legacy Secure Server CA                            ,,   
HP Jetdirect 2B0EAD20                                        ,,   
Akamai Subordinate CA 3                                      ,,   
VeriSign, Inc.                                               ,,   
Thawte SGC CA                                                ,,   
VeriSign Class 3 Secure Server CA - G2                       ,,

El certificado no se mostrará en Firefox. Intenté esto varias veces, incluso borrando el perfil, y apareció una vez en la interfaz de Firefox, pero completamente vacío.

De todos modos, eso es solo para un usuario, y quiero agregarlos en todo el sistema. ¿Existe una base de datos de todo el sistema que pueda modificar? ¿Cómo?

Si no puedo modificar una base de datos que abarque todo el sistema, puedo confiar en un script de inicio en X (como /etc/X11/Xsession.d/ ones, o un script llamado por el sistema de autoinicio xdg en /etc/xdg/autostart/ ) para modificar el perfil de usuario en inicio de la sesión, pero necesito una solución que funcione. ¡Ni siquiera puedo cargar certificados en los perfiles de usuario desde la línea de comandos ahora!

    
pregunta Jorge Suárez de Lis 18.01.2013 - 10:29

7 respuestas

15

El problema aquí es que Firefox no tiene una ubicación 'central' donde busca certificados. Solo mira el perfil actual. Es por eso que modificar /usr/share/ca-certificates u otros directorios similares no funcionará con Firefox. Esto es algo que se ha solicitado durante años; ver problemas 620373 , 449498 y 454036 (y probablemente haya muchos otros).

Así que te quedan solo dos tipos de soluciones: ya sea modificar cada perfil o modificar el comportamiento de Firefox. Sé que esto no es lo que estás buscando, pero no hay formas porque Firefox solo mira los perfiles de los usuarios.

Habiendo dicho eso, la solución que elegiría es usar enlaces duros o simbólicos, específicamente iría con enlaces duros. Esta solución es seguramente la más fácil y probablemente la mejor, aunque no tengo suficiente información para juzgar.

Lo que tienes que hacer es básicamente eliminar cada cert8.db y key3.db archivos para cada perfil y reemplazarlos con enlaces al "más completo" cert8.db y key3.db . Si utiliza enlaces duros, el cert8.db original y el key3.db serán indistinguibles de los nuevos.

Recuerde ajustar los permisos para que se ajusten a sus necesidades. Lo más probable es que necesite chmod a+rw para que todos puedan agregar / eliminar un certificado. Si solo desea que ciertos usuarios puedan agregar / eliminar certificados, puede crear un grupo, asignar las dos bases de datos a ese grupo y dar permiso de +w solo al grupo.

    
respondido por el Andrea Corbellini 27.01.2013 - 17:59
14

La forma más fácil es importar el certificado en un ejemplo de perfil de firefox y luego copiar el cert8.db a los usuarios que desee equipar con el certificado.

Primero importe el certificado a mano en el perfil de Firefox del usuario de muestra. Luego copie

/home/${USER}/.mozilla/firefox/${randomalphanum}.default/cert8.db

en los usuarios de perfiles de Firefox. Eso es. Si quiere asegurarse de que los nuevos usuarios obtengan el certificado automáticamente, copie cert8.db en:

/etc/firefox-3.0/profile

Aquí hay una forma alternativa que no anula los certificados existentes: [fragmento de bash para sistemas Linux]

certificateFile="MyCa.cert.pem"
certificateName="MyCA Name" 
for certDB in $(find  ~/.mozilla* ~/.thunderbird -name "cert8.db")
do
  certDir=$(dirname ${certDB});
  #log "mozilla certificate" "install '${certificateName}' in ${certDir}"
 certutil -A -n "${certificateName}" -t "TCu,Cuw,Tuw" -i ${certificateFile} -d ${certDir}
done

Puede encontrar certutil en el paquete libnss3-tools (debian / ubuntu).

Véase también: Importación programática de certificado de CA

Fuente: Instalar el certificado mediante programación en Mozilla

    
respondido por el TomKat 02.11.2013 - 07:55
1

Una de las características del complemento CCK Wizard Firefox es la importación de certificados de CA. Uso este complemento para crear un complemento personalizado que incluya un certificado de CA de la empresa. Luego empaqueto el xpi personalizado en un .deb en el repositorio interno del que todas las estaciones de trabajo obtienen actualizaciones.

CCK Wizard

EDITAR: para empaquetar el xpi para Ubuntu, necesita crear un paquete que incluya el directorio / usr / lib / firefox-addons / extensions / [addon-name @ servername] y descomprimir todo el contenido del xpi en este directorio. Por ejemplo, si nombra su complemento foobarbaz y el servidor del que lo tiene configurado para actualizar desde (si tuviera que habilitar esa función) es intranet.example.com, entonces el directorio sería foobarbaz@intranet.example.com. Nunca habilito la actualización automática, sino que la actualizo en el repositorio.

    
respondido por el Benjamin Long 04.04.2014 - 15:10
1

Firefox funciona después de una instalación limpia. Si se borra la base de datos de certificados en cert8.db , se regenera en el siguiente inicio de Firefox. Esto sugiere fuertemente que hay un almacenamiento por defecto de CA certs en todo el sistema.

El código fuente de Firefox muestra que los certificados de CA incorporados están, de hecho, codificados en% ejecutable firefox . Residen en security / nss / lib / ckfw / builtins /certdata.txt

Así que no hay forma de instalar un certificado en todo el sistema. Tenga en cuenta que el código fuente de parches puede provocar problemas con los derechos de propiedad intelectual.

    
respondido por el yanychar 21.04.2014 - 14:49
1

Estoy usando una aplicación de "Virtualización del entorno del usuario" (UEV) que hace esto para mis usuarios, pero puede hacer esto con las secuencias de comandos de inicio de sesión en los clientes de Windows. No publicaré todo el código para encontrar dinámicamente la ruta% APPDATA% \ Mozilla \ Firefox \% PROFILE%, pero cuando lo encuentre, puede importar los scripts utilizando algunos comandos básicos. Básicamente, estoy leyendo el archivo profiles.ini de Firefox para determinar la ruta al perfil de Firefox / cert8.db.

Es posible que desee consultar el uso de la aplicación certutil.exe. enlace

Puede ejecutar scripts de inicio de sesión para usuarios que importan automáticamente los certificados de confianza de una ubicación central en Firefox de todos los usuarios del sistema.

Aquí está el "núcleo" de mi script de importación de vb:

If Instr(strLine,"Path=Profiles/") Then
  arrLine = Split(strLine, "/")
  strProfile = strAppData & "\Mozilla\Firefox\Profiles\" & arrLine(1)
  strCertDB = strProfile & "\cert8.db"

  'Verify the DB exists, if not move to the next entry
  If objFSO.FileExists(strCertDB) Then
    'Run certutil command on this database
    strCertCommand1 = "\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYCA -t ""CT,C,C"" -d " & strProfile & " -i \SERVERNAME\SHARENAME$\certs\MYCA_Root.cer"

    strCertCommand2 = "\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYSECONDCA -t ""CT,C,C"" -d " & strProfile & " -i \SERVERNAME\SHARENAME$\certs\SecondCA_Root.cer"

    strCertCommand3 = "\SERVERNAME\SHARENAME$\certs\certutil\certutil.exe -A " &_
    "-n MYTHIRDCA -t ""CT,C,C"" -d " & strProfile & " -i \SERVERNAME\SHARENAME$\certs\ThirdCA_Root.cer"

    'Run the import commands for this Firefox profile
    objShell.Run("%comspec% /c " & strCertCommand1),0,TRUE
    objShell.Run("%comspec% /c " & strCertCommand2),0,TRUE
    objShell.Run("%comspec% /c " & strCertCommand3),0,TRUE
    
respondido por el Tony Massa 10.03.2015 - 17:19
1

Descubrí que la mayoría de las veces y de forma predeterminada, si no está configurado, Firefox usa las bases de datos de seguridad heredadas (cert8.db, key3.db y secmod.db) eso significa que necesitará usar una línea de comando diferente para inyectar el certificado en la base de datos correcta que usa Firefox. (ver más del hombre de certutil)

así que si su sistema usa la base de datos predeterminada, el comando debería ser así: (dbm)

certutil -A -n "Description Name" -t "CT,C,C" -d dbm:/home/<username>/.mozilla/firefox/<default folder>/ -i certificate.crt

de lo contrario, debería ser así: (sql)

certutil -A -n "Description Name" -t "CT,C,C" -d sql:/home/<username>/.mozilla/firefox/<default folder>/ -i certificate.crt

del hombre certutil:

-d [prefix]directory
Specify the database directory containing the certificate and key
database files.

certutil supports two types of databases: the legacy security databases
(cert8.db, key3.db, and secmod.db) and new SQLite databases (cert9.db,
key4.db, and pkcs11.txt).

NSS recognizes the following prefixes:

·   sql: requests the newer database

·   dbm: requests the legacy database

If no prefix is specified the default type is retrieved from
NSS_DEFAUL
    
respondido por el Asaf Magen 29.06.2016 - 15:49
1

Contrario a la creencia popular, puedes hacer que Firefox mire los certificados del sistema en lugar de su propio conjunto codificado.

Para hacer esto, querrá usar un paquete llamado p11-kit . . p11-kit proporciona un reemplazo directo para libnssckbi.so , la biblioteca compartida que contiene el conjunto de certificados codificados. La versión de p11-kit lee los certificados del almacén de certificados del sistema.

Debido a que Firefox incluye su propia versión de libnssckbi.so , deberá rastrearla y reemplazarla en lugar de la versión proporcionada en libnss3:

sudo mv /usr/lib/firefox/libnssckbi.so /usr/lib/firefox/libnssckbi.so.bak
sudo ln -s /usr/lib/x86_64-linux-gnu/pkcs11/p11-kit-trust.so /usr/lib/firefox/libnssckbi.so

A continuación, elimine el directorio ~/.pki para que Firefox actualice su base de datos de certificados (haciendo que extraiga los certificados del sistema) al reiniciar Firefox. Nota: esto eliminará todos los certificados existentes en la tienda, por lo que si tiene los personalizados que agregó manualmente, es posible que desee hacer una copia de seguridad de esa carpeta y luego volver a importarlos.

    
respondido por el wheeler 15.05.2018 - 18:02

Lea otras preguntas en las etiquetas