답변:
새 시스템 인 경우 인증서 데이터베이스가 초기화되지 않았을 수 있습니다. 이 문제를 해결하려면 다음을 수행하십시오.
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
* .db 파일을 읽으려고 할 수 있습니다 .~/.netscape
$HOME/.pki/nssdb
또한 -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.
--empty-password
끝에 스위치를 추가하십시오certutil
.