certutil:函数失败:安全库:错误的数据库


10

当我使用certutil它返回此错误:certutil: function failed: security library: bad database.

例如,我无法列出证书或密钥

我怎样才能解决这个问题?

Answers:


23

如果是新系统,则证书数据库可能未初始化。要解决此问题,请执行:

mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N

2
如果您不需要证书数据库上的密码,请将--empty-password开关添加到certutil命令末尾。
本·约翰逊

我发现如果我改为跑步:certutil -d sql:$HOME/.pki/nssdb -L不会导致该错误。但是,如果我只运行certutil -L它,则会显示该错误。这是否意味着数据库未损坏,但是存在某些不兼容性,或者certutil是否期望使用错误的目录?
CMCDragonkai

3

如果数据库已经初始化,但仍然损坏,则必须对其进行重建:

$ 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

自从在Debian上更新libGNUTLS以来,我的浏览器(chrome和iceweasel)无法打开。在控制台上,我[5284:5310:0306/110217:ERROR:nss_util.cc(750)] After loading Root Certs, loaded==false: NSS error code: -8018无法正常解决此问题。重建数据库为我解决了!非常感谢您:)
pid 2014年

之后,我可以重建数据库并列出证书,但是导入仍然失败,并显示以下错误: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身份运行,对吗?
Gillfish

2

如果要显示特定文件夹中的证书(例如,存储cert8.dbFirefox文件的文件夹),则需要使用“ -d”指定文件夹:

nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L

否则,nss-certutil可能会尝试从~/.netscape文件夹中读取* .db文件,或者可能$HOME/.pki/nssdb是以前的用户提到的。


1

还要检查-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.


0

就我而言,我使用以下解决方案解决了问题(Windows XP,nss 3.15.1):

cd /dir/with/database
C:/full/path/to/certutil.exe -L -d .

2
很好,但问题是指定CentOS。
MadHatter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.