Respuestas:
Si es un sistema nuevo, es posible que su base de datos de certificados no se inicialice. Para solucionar esto, realice:
mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N
certutil -d sql:$HOME/.pki/nssdb -L
no daría lugar a ese error. Pero si solo corro certutil -L
, mostraría ese error. ¿Eso significa que la base de datos no está dañada, pero hay alguna incompatibilidad o certutil espera el directorio incorrecto?
En caso de que la base de datos ya se haya inicializado, pero todavía esté dañada, debe reconstruirse:
$ mv ~/.pki/nssdb ~/.pki/nssdb.corrupted
$ mkdir ~/.pki/nssdb
$ chmod 700 ~/.pki/nssdb
$ certutil -d sql:$HOME/.pki/nssdb -N
Compruebe si funciona bien
$ certutil -d sql:$HOME/.pki/nssdb -L
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Certificado de importación
$ certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n GoAgent -i ~/programs/goagent/local/CA.crt
[5284:5310:0306/110217:ERROR:nss_util.cc(750)] After loading Root Certs, loaded==false: NSS error code: -8018
y no hay forma de resolver esto con gracia. ¡Reconstruir el DB lo resolvió para mí! Muchas gracias :)
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
mi comando de importación es certutil -d sql:$HOME/.pki/nssb -A -t "CT,C,C" -n sophos -i ~/Downloads/sophos_cert.crt
Esto no debería ejecutarse como root, ¿verdad?
Si desea mostrar certificaciones de una carpeta específica (por ejemplo, la carpeta que almacena el cert8.db
archivo para Firefox), debe especificar la carpeta con "-d":
nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L
De lo contrario, nss-certutil
puede intentar leer archivos * .db de la ~/.netscape
carpeta, o tal vez $HOME/.pki/nssdb
como mencionó el usuario anterior.
Compruebe también que la -d
ruta del directorio (debe apuntar al directorio) tiene espacio o no. Con espacio, da el mismo error o error de formato de archivo incorrecto: formato de base de datos antiguo, etc. Especialmente en Mac, la carpeta "Application Support"
contiene espacio. Entonces, tenga el camino completamente citado:
"/Users/myuser/Library/Application Support/Firefox/Profiles/jii912uh.default"
o agregue el carácter \ escape.
/Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default
Y verifique que la carpeta tenga los siguientes archivos, cert8.db, key3.db and secmob.db.
--empty-password
interruptor al final delcertutil
comando.