Respostas:
Se for um novo sistema, seu banco de dados de certificados pode não ser inicializado. Para corrigir isso, execute:
mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N
certutil -d sql:$HOME/.pki/nssdb -L
não resultaria nesse erro. Mas se eu apenas executasse certutil -L
, mostraria esse erro. Isso significa que o banco de dados não está corrompido, mas há alguma incompatibilidade ou o certutil espera o diretório errado?
Caso o banco de dados já tenha sido inicializado, mas ainda esteja corrompido, ele deverá ser reconstruído:
$ mv ~/.pki/nssdb ~/.pki/nssdb.corrupted
$ mkdir ~/.pki/nssdb
$ chmod 700 ~/.pki/nssdb
$ certutil -d sql:$HOME/.pki/nssdb -N
Verifique se está funcionando bem
$ certutil -d sql:$HOME/.pki/nssdb -L
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Certificado de importação
$ 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 não há maneira de resolver isso normalmente. A reconstrução do banco de dados resolveu isso para mim! Muito obrigado :)
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
Meu comando de importação é certutil -d sql:$HOME/.pki/nssb -A -t "CT,C,C" -n sophos -i ~/Downloads/sophos_cert.crt
Isso não deve ser executado como root, não é?
Se você deseja exibir certificações de uma pasta específica (por exemplo, a pasta que armazena o cert8.db
arquivo para o Firefox), é necessário especificar a pasta com "-d":
nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L
Caso contrário, nss-certutil
tente ler os arquivos * .db da ~/.netscape
pasta ou talvez $HOME/.pki/nssdb
como o usuário anterior mencionou.
Verifique também se o -d
caminho do diretório (deve apontar para o diretório) tem algum espaço ou não. Com o espaço, ocorre o mesmo erro ou erro de formato de arquivo incorreto - formato antigo do banco de dados, etc. Especialmente no Mac, a pasta está na "Application Support"
qual contém espaço. Portanto, o caminho foi totalmente citado:
"/Users/myuser/Library/Application Support/Firefox/Profiles/jii912uh.default"
ou adicione o caractere \ escape.
/Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default
E verifique se a pasta possui os seguintes arquivos, cert8.db, key3.db and secmob.db.
--empty-password
opção no final docertutil
comando.