Câu trả lời:
Nếu đó là hệ thống mới, cơ sở dữ liệu chứng chỉ của bạn có thể không được khởi tạo. Để khắc phục điều này, hãy thực hiện:
mkdir -p $HOME/.pki/nssdb
certutil -d $HOME/.pki/nssdb -N
certutil -d sql:$HOME/.pki/nssdb -Lnó sẽ không dẫn đến lỗi đó. Nhưng nếu tôi chỉ chạy certutil -Lnó sẽ hiển thị lỗi đó. Điều đó có nghĩa là cơ sở dữ liệu không bị hỏng, nhưng có một số không tương thích hoặc certutil mong đợi thư mục sai?
Trong trường hợp cơ sở dữ liệu đã được khởi tạo, nhưng vẫn bị hỏng thì phải xây dựng lại:
$ mv ~/.pki/nssdb ~/.pki/nssdb.corrupted
$ mkdir ~/.pki/nssdb
$ chmod 700 ~/.pki/nssdb
$ certutil -d sql:$HOME/.pki/nssdb -N
Kiểm tra nếu làm việc ổn
$ certutil -d sql:$HOME/.pki/nssdb -L
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
Giấy chứng nhận nhập khẩu
$ 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: -8018và không có cách nào để giải quyết điều này một cách duyên dáng. Xây dựng lại DB đã giải quyết nó cho tôi! Cảm ơn bạn rất nhiều :)
certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.Lệnh nhập của tôi là certutil -d sql:$HOME/.pki/nssb -A -t "CT,C,C" -n sophos -i ~/Downloads/sophos_cert.crtKhông nên chạy dưới quyền root, phải không?
Nếu bạn muốn hiển thị các chứng chỉ từ một thư mục cụ thể (ví dụ: thư mục lưu trữ cert8.dbtệp cho Firefox), bạn cần chỉ định thư mục có "-d":
nss-certutil -d /Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default -L
Nếu không, nss-certutilcó thể cố gắng đọc các tệp * .db từ ~/.netscapethư mục hoặc có thể $HOME/.pki/nssdbnhư người dùng trước đã đề cập.
Ngoài ra kiểm tra -dđường dẫn thư mục (phải trỏ đến thư mục) có khoảng trống hay không. Với không gian, nó cung cấp cùng một lỗi hoặc lỗi định dạng tệp xấu - định dạng cơ sở dữ liệu cũ, v.v. Đặc biệt trong Mac, thư mục "Application Support"chứa không gian. Vì vậy, có đường dẫn đầy đủ trích dẫn:
"/Users/myuser/Library/Application Support/Firefox/Profiles/jii912uh.default"
hoặc thêm ký tự thoát \.
/Users/myuser/Library/Application\ Support/Firefox/Profiles/jii912uh.default
Và kiểm tra xem thư mục có các tệp sau không cert8.db, key3.db and secmob.db.
--empty-passwordtắc vào cuốicertutillệnh.