certutil:功能失败:安全库:数据库错误

certutil:功能失败:安全库:数据库错误

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

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

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

答案1

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

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

答案2

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

$ 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

答案3

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

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

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

答案4

这是一个很老的问题,但提到的解决方案对我来说不起作用,因为错误是由不正确的 shell 扩展引起的。

就我而言,我必须用 替换~$HOME例如

certutil -d sql:~/.pki/nssdb -A -t "C,," -n KEY_NAME -i ~/path_to_the_key/key.cert

成为

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n KEY_NAME -i $HOME/path_to_the_key/key.cert

相关内容