Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Теперь нужно получить сертификат:

В OpenSSL 3.0 убрали интерактивный режим. 

Для работы с pkcs11 engine теперь необходимо сделать следующее:

  1. Создать файл конфигурации engine.conf со следующим содержимым:

    openssl_conf = openssl_init
     
    [openssl_init]
    engines = engine_section
     
    [engine_section]
    pkcs11 = pkcs11_section
     
    [pkcs11_section]
    engine_id = pkcs11
    dynamic_path =/usr/lib64/engines-3/pkcs11.so
    MODULE_PATH =/usr/lib64/librtpkcs11ecp.so
    default_algorithms = ALL

      

  2. При необходимости использовать pkcs11 engine указывать путь к файлу конфигурации engine.conf. Пример создания самоподписанного сертификата:

    OPENSSL_CONF=/path/to/engine.conf openssl req -engine pkcs11 -x509 -new -key 0:45 -keyform engine -out cert.crt -subj "/C=RU/ST=Moscow/L=Moscow/O=Aktiv/OU=dev/CN=testuser/emailAddress=testuser@mail.com"

  3. Или создайте запрос на сертификат для передачи его в УЦ:
    OPENSSL_CONF=/path/to/engine.conf openssl req -engine pkcs11 -x509 -new -key 0:45 -keyform engine -out request.req

Сохраните сертификат на токене:

...

В результате отобразится сообщение:

[user@redos ~]$ sudo pkcs11_inspect
PIN for token: 
Printing data for mapper digest:
CB:13:CA:34:AC:04:CD:BF:A6:17:29:2F:C8:00:6A:D5:54:B8:0B:BB

Скопируйте строчку с описанием сертификата в файл /etc/pam_pkcs11/digest_mapping в формате:

Code Block
<вывод команды pkcs11_inspect> -> <имя_пользователя>

Пример заполнения файла:

[user@redos ~]$ sudo cat /etc/pam_pkcs11/digest_mapping 
CB:13:CA:34:AC:04:CD:BF:A6:17:29:2F:C8:00:6A:D5:54:B8:0B:BB -> user


Подключите модуль к системе авторизации PAM:

...

Code Block
languagebash
pkcs11_eventmgr
{
    # Запуск в бэкграунде
    daemon = true;
     
    # Настройка сообщений отладки
    debug = false;
 
    # Время опроса в секундах
    polling_time = 1;
 
    # Установка тайм-аута на удаление карты
    # По-умолчанию 0
    expire_time = 0;
 
    # Выбор pkcs11 библиотеки для работы с Рутокен
    pkcs11_module = /usr/lib64/librtpkcs11ecp.so;
 
    # Действия с картой
    # Карта вставлена:
    event card_insert {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore ;
 
        action = "/bin/false";
    }
 
    # Карта извлечена
    event card_remove {
        on_error = ignore;
         
        # Вызываем функцию блокировки экрана в зависимости от вашей среды рабочего стола (Mate, KDE, Gnome)
        action = "cinnamonmate-screensaver-command --lock";
    }
 
    # Карта долгое время извлечена
    event expire_time {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore;
 
        action = "/bin/false";
    }
}

...

Code Block
languagebash
[Desktop Entry]
Type=Application
Name=Smart Card Screensaver
Comment=Application to lock screen on smart card removal.
Exec=/usr/bin/pkcs11_eventmgr daemon