Linux
pkcs11_lib - NSS 初始化失敗(數據庫錯誤?)
我無法讓 PKCS#11 和 PAM 工作,無論出於何種原因nss已停止工作並且我無法創建新數據庫。
這是 PKCS11 和 NSS 的輸出:
DEBUG:pkcs11_lib.c:187: Initializing NSS ... DEBUG:pkcs11_lib.c:197: Initializing NSS ... database=/etc/pam_pkcs11/nssdb DEBUG:pkcs11_lib.c:206: NSS_Initialize failed: (null) ERROR:pam_pkcs11.c:250: Failed to initialize crypto
在檢查了我的所有配置和操作方法後,我用Google搜尋並發現了這個:certutil: function failed: security library: bad database
這提醒了我,我可能從未創建過新的 nss 數據庫。(但是,我認為會自動完成?)
但是在嘗試創建新數據庫時,我得到以下資訊:
# certutil -d /etc/pam_pkcs11/nssdb -N certutil: function failed: SEC_ERROR_LEGACY_DATABASE: The certificate/key database is in an old, unsupported format.
所以我做了一些探勘並嘗試了:
# certutil -d sql:/etc/pam_pkcs11/nssdb -N certutil: function failed: SEC_ERROR_BAD_DATABASE: security library: bad database.
系統: Fedora 21(這是最新的)
NSS: nss-tools-3.20.1-1.0 + nss-3.20.1-1.0
PAM: pam_pkcs11-0.6.8-6
OpenSC: opensc-0.14.0-2
OpenSSL: openssl-1.0.1k-12
SqlLite: sqlite-3.8.11.1-1
我可能應該回家吃點東西什麼的。
忘記創建文件夾
nssdb
(是的,它是一個文件夾而不是一個文件..在我調試期間Google提出的每個論壇中都清楚地說明了這一點)。我應該知道這一點。
# mkdir -p /etc/pam_pkcs11/nssdb # chmod 700 /etc/pam_pkcs11/nssdb # certutil -d /etc/pam_pkcs11/nssdb -N
另請注意,將 NSS 與 PAM 一起使用時,尤其是在舊系統上。
永遠不要使用
sql:
樣式 nss 數據庫。