У меня проблемы с работой 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: сбой функции: библиотека безопасности: неверная база данных
Это напомнило мне, что я, вероятно, никогда не создавал новую базу данных 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_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.