Подробный гайд по просмотру сертификатов на Rutoken Lite в Astra Linux - Часть 2

Подробный гайд по просмотру сертификатов на Rutoken Lite в Astra Linux. Настройка графики через Firefox и быстрые команды для проверки даты окончания через pkcs11-tool.

2026.11.09                  


Подробный гайд по просмотру сертификатов на Rutoken Lite в Astra Linux - Часть 2Подробный гайд по просмотру сертификатов на Rutoken Lite в Astra Linux - Часть 2

Вариант 4. Командная строка: получить дату окончания

Это самый надёжный способ для диагностики.

4.1. Проверить, что токен виден через PKCS#11

pkcs11-tool --module "$MOD" --list-slots

Должен быть слот с токеном.

Если слотов несколько, можно указать индекс слота, например:

pkcs11-tool --module "$MOD" --slot-index 0 --list-objects --type cert --login

Но обычно достаточно просто:

pkcs11-tool --module "$MOD" --list-objects --type cert --login



4.2. Посмотреть список сертификатов на токене

pkcs11-tool --module "$MOD" --list-objects --type cert --login

Будет запрошен PIN-код пользователя токена.

Примерный вывод может быть таким:

Certificate Object; type = X.509 cert
  label:      Ivanov
  subject:    DN: CN=Ivanov, O=Example
  ID:         01

Важные поля:

label:
ID:

Они понадобятся для чтения сертификата. Если без --login список пустой, обязательно попробуйте с --login.


4.3. Извлечь сертификат во временный файл

Если в выводе был, например:

ID: 01

Выполните:

pkcs11-tool --module "$MOD" --read-object --type cert --id 01 --login --output-file /tmp/rutoken-cert-01.der

Если объект имеет не ID, а понятную метку, можно использовать:

pkcs11-tool --module "$MOD" --read-object --type cert --label 'Имя метки' --login --output-file /tmp/rutoken-cert.der

4.4. Посмотреть дату окончания

Обычно сертификат сохраняется в DER-формате:

openssl x509 -inform DER -in /tmp/rutoken-cert-01.der -noout -subject -issuer -dates

Только дата окончания:

openssl x509 -inform DER -in /tmp/rutoken-cert-01.der -noout -enddate

Вывод будет примерно таким:

notAfter=Nov  7 10:00:00 2027 GMT

Если нужно посмотреть подробнее:

openssl x509 -inform DER -in /tmp/rutoken-cert-01.der -noout -text

4.5. Проверить, истёк ли сертификат

Проверить, действителен ли сертификат сейчас:

openssl x509 -inform DER -in /tmp/rutoken-cert-01.der -noout -checkend 0

Код возврата:

echo $?
  • 0 — сертификат ещё действителен;
  • 1 — сертификат истёк.

Проверить, действителен ли сертификат ещё 30 дней:

openssl x509 -inform DER -in /tmp/rutoken-cert-01.der -noout -checkend $((30*24*3600))

Если код возврата 0, сертификат будет действителен минимум 30 дней.


5. Быстрая команда для одного сертификата

Если известен ID сертификата, можно сделать почти одной строкой:

pkcs11-tool --module "$MOD" --read-object --type cert --id 01 --login --output-file /dev/stdout \
  | openssl x509 -inform DER -noout -subject -issuer -enddate

Или, если нужно только notAfter:

pkcs11-tool --module "$MOD" --read-object --type cert --id 01 --login --output-file /dev/stdout \
  | openssl x509 -inform DER -noout -enddate

6. Скрипт для вывода всех сертификатов и сроков действия

Можно использовать такой скрипт:

#!/usr/bin/env bash

MOD="/usr/lib/librtpkcs11.so"

for id in $(pkcs11-tool --module "$MOD" --list-objects --type cert --login | awk '/ID:/ {print $2}'); do
    FILE="/tmp/rutoken-cert-$id.der"

    echo "=== Чтение сертификата ID: $id ==="

    pkcs11-tool --module "$MOD" --read-object --type cert --id "$id" --login --output-file "$FILE"

    echo "Данные сертификата:"
    openssl x509 -inform DER -in "$FILE" -noout -subject -issuer -enddate

    if openssl x509 -inform DER -in "$FILE" -noout -checkend 0 >/dev/null; then
        echo "Статус: сертификат действителен"
    else
        echo "Статус: сертификат истёк"
    fi

    echo
done

Не забудьте поправить путь к MOD, если у вас он другой.


Важно: скрипт может несколько раз запрашивать PIN-код, потому что каждый вызов pkcs11-tool открывает отдельную сессию.


7. Если нужен именно графический просмотр уже извлечённого сертификата

Можно установить просмотрщик сертификатов из пакета gcr:

sudo apt install gcr

Скопировать файл с расширением .crt:

cp /tmp/rutoken-cert-01.der /tmp/rutoken-cert-01.crt

Открыть:

gcr-viewer /tmp/rutoken-cert-01.crt

Либо просто дважды кликнуть по файлу .crt в файловом менеджере, если графическая среда поддерживает просмотр сертификатов.




8. Что делать с rutoken-linux-gui-manager

Если rutoken-linux-gui-manager видит токен, но не показывает содержимое, возможно, дело в одном из следующих моментов:

  1. Не загружена или не найдена PKCS#11-библиотека Рутокен.
  2. Нет доступа к pcscd.
  3. Токен занят другим процессом.
  4. Приложение не умеет корректно работать именно с данной версией драйвера/токена.
  5. Сертификаты на токене не представлены как объекты, которые видит это приложение.

Диагностика:

sudo systemctl restart pcscd

Затем запустите менеджер из терминала и посмотрите ошибки:

rutoken-linux-gui-manager

Если есть режим отладки, попробуйте:

rutoken-linux-gui-manager --debug

или:

rutoken-linux-gui-manager --verbose

Также проверьте, не открыт ли токен уже в другом приложении: Firefox, Chromium, Thunderbird, CryptoPro, другой менеджер, скрипт.


Если командная строка через pkcs11-tool сертификаты видит, а rutoken-linux-gui-manager нет, значит проблема, скорее всего, в самом графическом менеджере. В этом случае проще использовать Firefox или команды.


9. Если сертификаты не видны через pkcs11-tool

Если команда:

pkcs11-tool --module "$MOD" --list-objects --type cert --login

Не показывает сертификаты, возможны такие варианты:

  1. На токене действительно нет объектов-сертификатов.
  2. Сертификат хранится не как X.509-объект, а как часть закрытого контейнера.
  3. Токен используется как контейнер КриптоПро или другого СКЗИ.
  4. Не установлена нужная библиотека Рутокен.
  5. Не хватает прав на доступ к pcscd.

В последнем случае можно проверить группы:

groups

Иногда помогает добавление пользователя в группу pcscd, если она есть в системе:

sudo usermod -aG pcscd "$USER"

После этого нужно выйти и зайти заново.


10. Если токен используется с КриптоПро

Если в системе установлен КриптоПро CSP и сертификат хранится как контейнер КриптоПро, то pkcs11-tool может не видеть сертификат как объект. Тогда лучше использовать средства КриптоПро.

Сначала посмотрите, есть ли КриптоПро:

ls /opt/cprocsp/bin

Путь может быть, например:

/opt/cprocsp/bin/amd64

или:

/opt/cprocsp/bin/x86_64

Список контейнеров можно посмотреть так:

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifyc -fqcn

или, в зависимости от архитектуры:

/opt/cprocsp/bin/x86_64/csptest -keyset -enum_cont -verifyc -fqcn

Дальше для просмотра сертификатов контейнера используются certmgr или cryptcp, точный синтаксис зависит от версии КриптоПро и способа хранения контейнера.


Если используется именно КриптоПро, дата окончания сертификата обычно смотрятся через его штатные средства или через установленный сертификат в системе/контейнере.


11. Минимальный рабочий алгоритм

Если нужно быстро получить дату окончания, выполните:

sudo apt install -y pcscd libccid opensc openssl

sudo systemctl enable --now pcscd

MOD="$(find /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib64 /usr/local/lib \( -name 'librtpkcs11*.so' -o -name 'librtpkcs11*.so.*' \) 2>/dev/null | sort | head -n1)"

echo "$MOD"

pkcs11-tool --module "$MOD" --list-objects --type cert --login

Допустим, увидели:

ID: 01

Тогда:

pkcs11-tool --module "$MOD" --read-object --type cert --id 01 --login --output-file /tmp/rutoken-cert.der

openssl x509 -inform DER -in /tmp/rutoken-cert.der -noout -enddate

Вывод будет примерно таким:

notAfter=Dec 31 21:59:59 2027 GMT

12. Важно

Если нужен именно графический вид:

  1. Добавьте librtpkcs11.so в Firefox как устройство безопасности.
  2. Откройте сертификаты токена в Firefox.
  3. Посмотрите срок действия в свойствах сертификата.



Если графический менеджер не работает или нужен быстрый результат:

pkcs11-tool --module /usr/lib/librtpkcs11.so --list-objects --type cert --login
pkcs11-tool --module /usr/lib/librtpkcs11.so --read-object --type cert --id 01 --login --output-file /tmp/cert.der
openssl x509 -inform DER -in /tmp/cert.der -noout -enddate

Это самый надёжный способ получить дату окончания сертификата на Rutoken Lite в Linux.


Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта