回答:
新しいシステムの場合、証明書データベースが初期化されていない可能性があります。これを修正するには、以下を実行します。
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
、これを優雅に解決する方法がありませんでした。DBを再構築することで解決しました!どうもありがとうございました:)
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
です。
特定のフォルダー(たとえば、cert8.db
Firefox のファイルを格納するフォルダー)からの証明書を表示する場合は、「-d」でフォルダーを指定する必要があります。
nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L
そうしnss-certutil
ないと、~/.netscape
フォルダから、または$HOME/.pki/nssdb
以前のユーザーが述べたように* .dbファイルを読み取ろうとする可能性があります。
また、-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.
私の場合、私はこのソリューションを使用して問題を解決しました(Windows XP、nss 3.15.1):
cd /dir/with/database
C:/full/path/to/certutil.exe -L -d .
--empty-password
は、certutil
コマンドの最後にスイッチを追加します。