Linux

pkcs11_lib - NSS 初始化失敗(數據庫錯誤?)

  • January 11, 2016

我無法讓 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 數據庫。

引用自:https://serverfault.com/questions/748274