我无法让 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
在检查了我的所有配置和操作方法后,我用谷歌搜索并发现了这个: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
(是的,它是一个文件夹而不是一个文件..在我调试期间谷歌提出的每个论坛中都清楚地说明了这一点)。我应该知道这一点。
另请注意,将 NSS 与 PAM 一起使用时,尤其是在旧系统上。
永远不要使用
sql:
样式 nss 数据库。