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 -L
nó sẽ không dẫn đến lỗi đó. Nhưng nếu tôi chỉ chạy certutil -L
nó 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: -8018
và 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.crt
Khô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.db
tệ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-certutil
có thể cố gắng đọc các tệp * .db từ ~/.netscape
thư mục hoặc có thể $HOME/.pki/nssdb
như 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-password
tắc vào cuốicertutil
lệnh.