Risposte:
Se si tratta di un nuovo sistema, il database dei certificati potrebbe non essere inizializzato. Per risolvere questo problema, eseguire:
mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N
certutil -d sql:$HOME/.pki/nssdb -L
non si sarebbe verificato quell'errore. Ma se avessi appena eseguito certutil -L
, avrebbe mostrato quell'errore. Ciò significa che il database non è danneggiato, ma c'è qualche incompatibilità o certutil si aspetta la directory sbagliata?
Nel caso in cui il database sia già stato inizializzato, ma è ancora danneggiato, è necessario ricostruirlo:
$ mv ~/.pki/nssdb ~/.pki/nssdb.corrupted
$ mkdir ~/.pki/nssdb
$ chmod 700 ~/.pki/nssdb
$ certutil -d sql:$HOME/.pki/nssdb -N
Controlla se funziona bene
$ certutil -d sql:$HOME/.pki/nssdb -L
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Certificato di importazione
$ 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
e nessun modo per risolverlo con grazia. La ricostruzione del DB l'ha risolto per me! Grazie mille :)
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
mio comando di importazione è certutil -d sql:$HOME/.pki/nssb -A -t "CT,C,C" -n sophos -i ~/Downloads/sophos_cert.crt
Questo non dovrebbe essere eseguito come root, giusto?
Se si desidera visualizzare le certificazioni da una cartella specifica (ad esempio, la cartella che memorizza il cert8.db
file per Firefox), è necessario specificare la cartella con "-d":
nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L
Altrimenti, nss-certutil
potrebbe provare a leggere i file * .db dalla ~/.netscape
cartella o forse $HOME/.pki/nssdb
come menzionato dall'utente precedente.
Controllare anche il -d
percorso della directory (deve puntare alla directory) avere spazio o meno. Con lo spazio dà lo stesso errore o errore di formato file errato - vecchio formato di database ecc. Specialmente in Mac la cartella è in "Application Support"
cui contiene spazio. Quindi il percorso è completamente citato:
"/Users/myuser/Library/Application Support/Firefox/Profiles/jii912uh.default"
o aggiungi il carattere \ escape.
/Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default
E controlla che la cartella contenga i seguenti file, cert8.db, key3.db and secmob.db.
Nel mio caso ho risolto il problema utilizzando questa soluzione (Windows XP, nss 3.15.1):
cd /dir/with/database
C:/full/path/to/certutil.exe -L -d .
--empty-password
opzione alla fine delcertutil
comando.