Page tree

Versions Compared

Key

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

...

  • библиотека PKCS#11;
  • утилита osslsigncode;
  • утилита pkcs11-tool из комплекта OpenSC;сертификат и ключевая пара, записанные на устройство Рутокен.

Установка программного обеспечения

  1. Установите библиотеку PKCS#11:
    1. Перейдите в Центр загрузки.
    2. Нажмите Пользователям GNU/Linux и в раскрывшемся списке выберите версию для своей ОС и архитектуры.
    3. Примите лицензионное соглашение и дождитесь автоматического скачивания файла.
    4. Откройте терминал в папке со скачанным файлом и выполните команду:

      Code Block
      sudo dpkg -i librtpkcs11ecp_<версия>_<архитектура>.deb


  2. Установите osslsigncode и комплект OpenSC:

    Code Block
    sudo apt install osslsigncode opensc


Подписание при помощи утилиты osslsigncode и pkcs11 engine (OpenSC)

Проверка версии OpenSSL

Для подписания с помощью pkcs11 engine от OpenSC необходима версия OpenSSL 3.0.15 или выше. Чтобы посмотреть версию OpenSSL, в терминале выполните команду:

Code Block
openssl version

Если установленная версия ниже 3.0.15 и обновить ее системными средствами (например, sudo apt update && sudo apt upgrade) не получается, установите нужную версию вручную по инструкции в репозитории OpenSSL.

Генерация ключевой пары и создание сертификата

Tip

Если на Рутокене уже есть ключевая пара с сертификатом, можно переходить к подписанию файла.

  1. Сгенерируйте ключевую пару на Рутокене:

    Code Block
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45


  2. Сгенерируйте самоподписанный сертификат:

    Code Block
    openssl req -utf8 -x509 -keyform engine -key "pkcs11:your_pkcs11_uri" -engine rtenginepkcs11_engine -out cert.cer -subj "/C=<страна>/ST=<регион>/L=<населенный_пункт>/O=<организация>/OU=<отдел>/CN=<ФИО>/emailAddress=<email>"  


  3. Сохраните сертификат на Рутокен:

    Code Block
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.cer --id 45

Подписание при помощи утилиты osslsigncode и pkcs11 engine (OpenSC)

Проверка версии OpenSSL

Для подписания с помощью pkcs11 engine от OpenSC необходима версия OpenSSL 3.0.15 или выше. Чтобы посмотреть версию OpenSSL, в терминале выполните команду:

Code Block
openssl version

Если установленная версия ниже 3.0.15 и обновить ее системными средствами (например, sudo apt update && sudo apt upgrade) не получается, установите нужную версию вручную по инструкции в репозитории OpenSSL.

Anchor
pkcs11_engine_sign
pkcs11_engine_sign

Подписание файла

Если на вашем устройстве одна ключевая пара, воспользуйтесь следующей командой для подписания файла:

...

  1. Перейдите в Центр загрузки.
  2. Выберите версию модуля интеграции для своей версии OpenSSL.
  3. Примите лицензионное соглашение и дождитесь автоматического скачивания файла.
  4. Откройте терминал в папке со скачанным файлом и выполните команды:

    Code Block
    unzip rtengine-<версия>.zip
    sudo apt install /rtengine-<версия>/rtengine/<версия>/Linux/x64/packages/librtengine<версия>_<архитектура>.deb


  5. Проверьте версию утилиты osslsigncode:

    Code Block
    osslsigncode --version
    

    Если установлена версия 2.9 или ниже, необходимо переименовать librtengine.so в rtengine.so. Для этого выполните команду:

    Code Block
    sudo mv /usr/lib/x86_64-linux-gnu/engines-3/librtengine.so /usr/lib/x86_64-linux-gnu/engines-3/rtengine.so


  6. Настройте OpenSSL по инструкции Установка и настройка OpenSSL для работы с rtengine.

    Note

    Для работы с osslsigncode версии 2.9 или ниже в конфигурационном файле openssl.cnf необходимо указать актуальный путь до rtengine.so вместо librtengine.so.


Генерация ключевой пары и создание сертификата

Tip

Если на Рутокене уже есть ключевая пара с сертификатом, можно переходить к подписанию файла.

  1. Сгенерируйте ключевую пару на Рутокене:

    Code Block
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 45


  2. Сгенерируйте самоподписанный сертификат:

    Code Block
    openssl req -utf8 -x509 -keyform engine -key "pkcs11:your_pkcs11_uri" -engine rtengine -out cert.cer -subj "/C=<страна>/ST=<регион>/L=<населенный_пункт>/O=<организация>/OU=<отдел>/CN=<ФИО>/emailAddress=<email>" 


  3. Сохраните сертификат на Рутокен:

    Code Block
    pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w cert.cer --id 45

Anchor
rtengine_sign
rtengine_sign

Подписание файла

Чтобы подписать файл, выполните команду:

...