...
В данной инструкции описывается, как настроить модуль pam_pkcs11
для работы с библиотекой librtpkcs11ecp.so
.
Стенд
Нам понадобится токен или смарт-карта семейства Рутокен ЭЦП, отформатированные через Панель управления Рутокен.
...
Если установка завершилась корректно, то в папке /usr/lib (или /usr/lib64) появится библиотека librtpkcs11ecp.so.
3 Проверяем работу токена или смарт-карты
...
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
|
Для 64-битной версии используйте команду:
$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so -T
|
4 Создаем ключевую пару
...
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
|
...
$ pkcs11-tool --module /usr/lib64/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45
|
...
$ openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so
|
Для 64-битной версии используйте команду:
$ openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib64/librtpkcs11ecp.so
|
Создаем сертификат в PEM-формате. Внимание! При выполнении этой команды запрашивается PIN-код пользователя.
...
auth [success=1 default=ignore] pam_pkcs11.so pkcs11_module= /usr/lib/librtpkcs11ecp .so
|
...
auth [success=1 default=ignore] pam_pkcs11.so pkcs11_module= /usr/lib64/librtpkcs11ecp .so
|
...
pam_pkcs11 {
nullok = false ;
debug = false ;
use_first_pass = false ;
use_authtok = false ;
card_only = false ;
wait_for_card = false ;
use_pkcs11_module = rutokenecp;
pkcs11_module rutokenecp {
module = /usr/lib/librtpkcs11ecp .so
slot_num = 0;
support_thread = true; ca_dir = /etc/security/pam_pkcs11/cacerts; crl_dir = /etc/security/pam_pkcs11/crls; cert_policy = signature; } use_mappers = opensc; mapper_search_path = /lib/pam_pkcs11; # Search certificates from $HOME/.eid/authorized_certificates to match users mapper opensc { debug = false; module = /lib64/pam_pkcs11/opensc_mapper.so; } }
|
Для 64-битной версии замените строку
module = /usr/lib/librtpkcs11ecp.so на строку module = /usr/lib64/librtpkcs11ecp.so
и строку
mapper_search_path = /lib/pam_pkcs11; на строку mapper_search_path = /lib64/pam_pkcs11;
...