когда я использую certutil
он возвращает эту ошибку: certutil: function failed: security library: bad database.
например Я не могу перечислить сертификаты или ключи
Как я могу это исправить?
Если это новая система, возможно, ваша база данных сертификатов не инициализирована. Чтобы исправить это, выполните:
mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N
Если база данных уже была инициализирована, но все еще повреждена, ее необходимо перестроить:
$ 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
Если вы хотите отобразить сертификаты из определенной папки (например, папки, в которой хранится cert8.db
файл для Firefox), вам нужно указать папку с помощью "-d":
nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L
В противном случае, nss-certutil
может попытаться прочитать файлы * .db из ~/.netscape
папка, а может быть $HOME/.pki/nssdb
как упоминал предыдущий пользователь.
Также проверьте -d
путь к каталогу (должен указывать на каталог) иметь пробел или нет. С пробелом выдает ту же ошибку или ошибку неправильного формата файла - старый формат базы данных и т. Д. Специально на Mac папка находится в "Application Support"
который содержит пробел. Итак, процитируйте путь полностью:
"/Users/myuser/Library/Application Support/Firefox/Profiles/jii912uh.default"
или добавьте символ \ escape.
/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 .