我无法使PKCS#11和PAM工作,无论出于何种原因, nss停止工作,我无法创build新的数据库。
以下是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
检查我的所有configuration和如何search后,发现: certutil:function failed:security library:bad database
这提醒我,我可能从来没有创build一个新的数据库。 (但是,我认为会自动完成?)
但是,当试图创build一个新的数据库,我得到以下内容:
# 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
我应该回家吃点东西。
忘了创build文件夹nssdb (是的,这是一个文件夹,而不是一个文件..这是在每个论坛谷歌在我的debugging过程中清楚地陈述)。
我应该知道这一点。
# mkdir -p /etc/pam_pkcs11/nssdb # chmod 700 /etc/pam_pkcs11/nssdb # certutil -d /etc/pam_pkcs11/nssdb -N
还要注意,在PAM中使用NSS时,特别是在较旧的系统上。
切勿使用sql: style nss数据库。