Answers:
如果是新系统,则证书数据库可能未初始化。要解决此问题,请执行:
mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N
certutil -d sql:$HOME/.pki/nssdb -L
不会导致该错误。但是,如果我只运行certutil -L
它,则会显示该错误。这是否意味着数据库未损坏,但是存在某些不兼容性,或者certutil是否期望使用错误的目录?
如果数据库已经初始化,但仍然损坏,则必须对其进行重建:
$ mv ~/.pki/nssdb ~/.pki/nssdb.corrupted
$ mkdir ~/.pki/nssdb
$ chmod 700 ~/.pki/nssdb
$ certutil -d sql:$HOME/.pki/nssdb -N
检查工作是否正常
$ certutil -d sql:$HOME/.pki/nssdb -L
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
进口证明书
$ 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
无法正常解决此问题。重建数据库为我解决了!非常感谢您:)
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
我的导入命令是:certutil -d sql:$HOME/.pki/nssb -A -t "CT,C,C" -n sophos -i ~/Downloads/sophos_cert.crt
不必必须以root身份运行,对吗?
还要检查-d
目录路径(必须指向目录)是否有空格。如果使用空格,则会出现相同的错误或错误的文件格式错误-旧数据库格式等。特别是在Mac中,文件夹所在的位置"Application Support"
包含空格。因此,请完整引用该路径:
"/Users/myuser/Library/Application Support/Firefox/Profiles/jii912uh.default"
或添加\转义字符。
/Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default
并检查文件夹中是否包含以下文件, cert8.db, key3.db and secmob.db.
--empty-password
开关添加到certutil
命令末尾。