Подробный гайд по настройке Рутокен ЭЦП и Magistra в Linux и macOS - Часть 1
1. Рутокен — это ещё не всё, что нужно для ЭЦП
Для российской квалифицированной электронной подписи по ГОСТ обычно нужна цепочка:
Аппаратный токен Рутокен
↓
Драйверы Рутокен / PC/SC / PKCS#11
↓
Криптопровайдер: КриптоПро CSP или ViPNet CSP
↓
Приложение / браузер / криптоплагин
Сам токен хранит ключ и выполняет криптографические операции, но для работы с российскими сертификатами ГОСТ почти всегда нужен КриптоПро CSP или иной сертифицированный криптопровайдер.
2. Рутокен ЭЦП и Рутокен Magistra
Условно:
| Модель | Особенности |
|---|---|
| Рутокен ЭЦП | Классические аппаратные токены для ЭЦП, часто встречаются в связке с КриптоПро. Старые модели могут хуже работать на новых macOS и некоторых свежих ядрах Linux. |
| Рутокен Magistra | Более новая линейка/модификация. Обычно требует более свежих драйверов «Актив» и актуального КриптоПро. Часто лучше совместима с современными ОС, но нужно проверять поддержку конкретной ревизии. |
В большинстве случаев оба семейства работают через один и тот же комплект драйверов Рутокен для Linux/macOS, но для Magistra лучше ставить максимально свежую версию драйверов и прошивки.
3. Что понадобится
Перед настройкой подготовьте:
- Сам токен Рутокен.
- PIN-код пользователя токена.
- Административный / SO PIN, если он известен и нужен.
- Сертификат ЭП и цепочку корневых/промежуточных сертификатов удостоверяющего центра.
- Лицензию КриптоПро CSP, если требуется коммерческое использование.
- Права администратора в ОС.
- Браузер, который будет использоваться для подписи: обычно лучше всего подходят Chrome/Chromium, Яндекс Браузер, Chromium-GOST. Safari — часто проблемный вариант.
1. Общая схема работы
Для Linux
USB-токен
↓
pcscd + CCID
↓
Драйвер Рутокен PC/SC / PKCS#11
↓
КриптоПро CSP
↓
cryptcp / csptest / браузерный плагин / приложение
2. Подготовка токена и PIN-кодов
1. Не начинайте с форматирования
Если вам выдали токен с уже записанным контейнером или сертификатом, не форматируйте его. Форматирование может удалить ключи и сертификаты.
2. PIN-коды по умолчанию
У многих Рутокенов с завода:
| Роль | PIN по умолчанию |
|---|---|
| Пользователь | 12345678 |
| Администратор / SO | 87654321 |
Но для конкретных моделей и партий значения могут отличаться. Всегда сверяйтесь с документацией к вашему токену.
3. Обязательно смените PIN
Если токен новый и вы уверены, что на нём нет чужих данных, смените PIN по умолчанию.
Через pkcs11-tool это обычно выглядит так:
pkcs11-tool --module /путь/к/librtpkcs11.so \
--login --pin СТАРЫЙ_PIN \
--change-pin --new-pin НОВЫЙ_PIN
Для административного / SO PIN:
pkcs11-tool --module /путь/к/librtpkcs11.so \
--login --login-type so --so-pin СТАРЫЙ_SO_PIN \
--change-pin --new-pin НОВЫЙ_SO_PIN
Важно: если заблокированы и пользовательский, и административный PIN, восстановление часто невозможно. Токен придётся переинициализировать, а данные на нём могут быть утеряны.
3. Установка и проверка в Linux
3.1. Установка базовых компонентов PC/SC
Debian / Ubuntu / Astra Linux / РЕД ОС / Альт на базе apt
sudo apt update
sudo apt install pcscd pcsc-tools libccid libusb-1.0-0 usbutils opensc
Запуск службы:
sudo systemctl enable --now pcscd.socket
sudo systemctl enable --now pcscd.service
Если pcscd.socket отсутствует в вашем дистрибутиве:
sudo systemctl enable --now pcscd
Fedora / RHEL / CentOS / Rocky / AlmaLinux
sudo dnf install pcsc-lite pcsc-tools ccid libusb usbutils opensc
sudo systemctl enable --now pcscd.socket pcscd.service
3.2. Установка драйверов Рутокен
Драйверы нужно брать с официального сайта «Актив» или из комплекта, который дал удостоверяющий центр.
Обычно для Linux доступны пакеты:
.debдля Debian/Ubuntu/Astra/Альт;.rpmдля RHEL/Fedora/РЕД ОС;- иногда архив или
.run-установщик.
Пример установки, если вы находитесь в каталоге с загруженными пакетами:
Debian/Ubuntu
sudo apt install ./librtpcsc*.deb ./librtpkcs11*.deb ./rutoken*.deb
или просто:
sudo apt install ./*.deb
RHEL/Fedora
sudo rpm -Uvh *.rpm
или:
sudo dnf install ./*.rpm
После установки перезапустите pcscd:
sudo systemctl restart pcscd
Иногда полезно перечитать udev-правила:
sudo udevadm control --reload-rules
sudo udevadm trigger
3.3. Проверка, что токен виден системе
Вставьте токен.
Проверка по USB:
lsusb | grep -i "Aktiv\|Rutoken"
Диагностика смарт-карт:
pcsc_scan
В норме вы должны увидеть что-то вроде:
Card state: Card inserted
ATR: 3B ...
или название устройства:
Aktiv Co. Rutoken ...
Если pcsc_scan не видит токен, смотрите раздел диагностики.
3.4. Поиск библиотеки PKCS#11 Рутокен
Драйвер Рутокен обычно устанавливает библиотеку librtpkcs11.so.
Найти её можно так:
MODULE=$(find /usr/lib /usr/lib64 /usr/local/lib /opt -name 'librtpkcs11*.so*' 2>/dev/null | head -n1)
echo "$MODULE"
Если команда выводит путь, например:
/usr/lib/x86_64-linux-gnu/librtpkcs11.so
значит библиотека установлена. Если ничего не нашлось — драйвер не установлен или установлен не для вашей архитектуры.
3.5. Проверка токена через PKCS#11
Установите opensc, если ещё не установлен:
sudo apt install opensc
# или
sudo dnf install opensc
Просмотр слотов:
pkcs11-tool --module "$MODULE" --list-slots
Просмотр механизмов:
pkcs11-tool --module "$MODULE" --list-mechanisms
Попытка войти с пользовательским PIN:
pkcs11-tool --module "$MODULE" --login --pin ВАШ_PIN --list-objects
Для ГОСТ-операций pkcs11-tool из OpenSC может показывать объекты, но не всегда умеет корректно выполнять российские алгоритмы. Для реальной подписи лучше использовать КриптоПро CSP или приложение, которое явно поддерживает ГОСТ и Рутокен.
4. КриптоПро CSP в Linux
4.1. Скачивание
КриптоПро CSP скачивается с сайта КриптоПро.
Обычно нужен архив вида:
linux-amd64.tgz
или аналогичный для вашей архитектуры.
4.2. Установка
Пример для стандартного пакета:
tar -xzf linux-amd64.tgz
cd linux-amd64
sudo ./install.sh
Или установка конкретных пакетов через пакетный менеджер:
Debian/Ubuntu
sudo apt install ./cprocsp-rdr*.deb ./cprocsp-rdr-pcsc*.deb ./cprocsp-rdr-pkcs11*.deb ./cprocsp-rdr-gost*.deb
RHEL/Fedora
sudo rpm -Uvh cprocsp-rdr*.rpm cprocsp-rdr-pcsc*.rpm cprocsp-rdr-pkcs11*.rpm cprocsp-rdr-gost*.rpm
На практике лучше использовать установщик или пакеты, рекомендованные КриптоПро для вашей ОС.
4.3. Важные компоненты КриптоПро
Для работы с Рутокен обычно нужны:
| Компонент | Назначение |
|---|---|
cprocsp-rdr |
Базовые компоненты чтения |
cprocsp-rdr-gost |
Поддержка ГОСТ |
cprocsp-rdr-pcsc |
Работа со смарт-картами |
cprocsp-rdr-pkcs11 |
PKCS#11-доступ |
cprocsp-rdr-curl |
Работа с CRL/OCSP по сети |
| браузерный плагин | Подпись в браузере |
Названия пакетов могут отличаться в разных версиях.
4.4. Пути к утилитам
Обычно утилиты находятся в:
/opt/cprocsp/bin/amd64/
или
/opt/cprocsp/bin/x86_64/
или на ARM:
/opt/cprocsp/bin/arm64/
Для удобства можно задать переменную:
CPBIN=$(dirname "$(find /opt/cprocsp/bin -name cryptcp -type f 2>/dev/null | head -n1)")
echo "$CPBIN"
Дальше в примерах используется $CPBIN.
4.5. Лицензия
Проверка лицензий:
sudo /opt/cprocsp/sbin/amd64/cpconfig -license list
Установка лицензии:
sudo /opt/cprocsp/sbin/amd64/cpconfig -license set НОМЕР-ЛИЦЕНЗИИ
Если у вас 32/64-битная система или нестандартная установка, путь к cpconfig может отличаться.
5. Проверка токена через КриптоПро в Linux
5.1. Список контейнеров
sudo "$CPBIN/csptest" -keyset -enum_cont -verifyc -fqcn
Если токен с контейнером виден, вы увидите контейнеры вида, например:
Rutoken ECP ...
или
Magistra ...
Если контейнеров нет, но токен виден в pcsc_scan, проблема чаще всего в:
- отсутствии компонентов КриптоПро для смарт-карт;
- отсутствии драйвера Рутокен;
- неправильной архитектуре пакетов;
- остановленном
pcscd; - блокировке USB;
- слишком старом КриптоПро для данной модели токена.
5.2. Список сертификатов
sudo "$CPBIN/certmgr" -list -store uMy
Если хранилище называется иначе, попробуйте:
sudo "$CPBIN/certmgr" -list
sudo "$CPBIN/certmgr" -list -store My
sudo "$CPBIN/certmgr" -list -store Root
sudo "$CPBIN/certmgr" -list -store CA
6. Установка сертификатов в КриптоПро в Linux
6.1. Корневой сертификат УЦ
sudo "$CPBIN/certmgr" -add -file root.cer -store Root
Если версия КриптоПро требует другое имя хранилища:
sudo "$CPBIN/certmgr" -add -file root.cer -store uRoot
6.2. Промежуточный сертификат
sudo "$CPBIN/certmgr" -add -file subca.cer -store CA
или:
sudo "$CPBIN/certmgr" -add -file subca.cer -store uCA
6.3. Личный сертификат
Если личный сертификат уже на токене, отдельно импортировать его не всегда нужно.
Но если у вас есть файл сертификата без ключа и его нужно добавить:
sudo "$CPBIN/certmgr" -add -file personal.cer -store uMy
или:
sudo "$CPBIN/certmgr" -add -file personal.cer -store My
6.4. Проверка
sudo "$CPBIN/certmgr" -list -store uMy
Вам нужен отпечаток сертификата, обычно он называется:
Thumbprint
или
Отпечаток
7. Подписание файлов в Linux через КриптоПро
7.1. Отсоединённая подпись
sudo "$CPBIN/cryptcp" -sign -detached -thumbprint ОТПЕЧАТОК_СЕРТИФИКАТА document.pdf
Обычно рядом создаётся файл:
document.pdf.sig
7.2. Указание имени выходного файла
sudo "$CPBIN/cryptcp" -sign -detached -thumbprint ОТПЕЧАТОК_СЕРТИФИКАТА -out document.sig document.pdf
7.3. Проверка подписи
sudo "$CPBIN/cryptcp" -verify -detached document.sig document.pdf
или:
sudo "$CPBIN/cryptcp" -verify document.sig document.pdf
7.4. Если контейнеров несколько
Можно указать контейнер явно.
Имя контейнера лучше взять из вывода:
sudo "$CPBIN/csptest" -keyset -enum_cont -verifyc -fqcn
Пример:
sudo "$CPBIN/cryptcp" -sign -detached -cont 'ИМЯ_КОНТЕЙНЕРА' document.pdf
8. Браузерная подпись в Linux
Для работы на сайтах с ЭЦП обычно нужен:
- КриптоПро CSP.
- КриптоПро ЭЦП Browser Plug-in / браузерный плагин.
- Расширение для браузера.
- Корневые сертификаты УЦ.
- Личный сертификат и ключ на токене.
8.1. Браузеры
Лучше всего использовать:
- Яндекс Браузер;
- Chromium;
- Chrome;
- Chromium-GOST.
Firefox обычно хуже подходит для российских сайтов с КриптоПро, особенно если сайт использует старый браузерный плагин или специфичные механизмы.
8.2. Установка браузерного плагина
Устанавливается либо через пакет КриптоПро, либо отдельно с сайта КриптоПро.
Пример установки пакета, если он есть в каталоге:
sudo apt install ./cprocsp-browser-plugin*.deb
или:
sudo rpm -Uvh cprocsp-browser-plugin*.rpm
Далее в браузер ставится расширение:
- из магазина расширений;
- или вручную, если это корпоративная/сертифицированная поставка.
После установки:
- Перезапустите браузер.
- Включите расширение.
- Добавьте нужные сайты в исключения/доверенные.
- Проверьте, что плагин видит сертификаты.
8.3. Типичные симптомы проблем в браузере
| Симптом | Вероятная причина |
|---|---|
| Плагин не виден | Не установлен браузерный плагин, расширение отключено |
| Сертификаты не отображаются | Нет личного сертификата, нет ключа, токен не разблокирован |
| Подпись не выполняется | Не хватает корневых сертификатов, неверная цепочка, не установлен КриптоПро |
| Сайт требует установить плагин повторно | После обновления браузера нужно переустановить расширение |
| Всё работало, потом перестало | Обновился браузер, сломалась совместимость плагина |
9. Особенности Рутокен Magistra в Linux
Для Рутокен Magistra особенно важно:
- Использовать свежие драйверы «Актив».
- Использовать актуальную версию КриптоПро.
- Проверить, что токен не переведён в несовместимый режим.
- Проверить, что хватает питания по USB, особенно через хабы и переходники.
- Если токен имеет кнопку подтверждения — подтверждать операцию на токене при подписи.
Если старый Рутокен ЭЦП может работать на старой системе, а на новой не определяться, то для Magistra чаще обратная ситуация: старые драйверы могут не знать новое устройство.
Проверка:
lsusb | grep -i "Aktiv\|Magistra\|Rutoken"
pcsc_scan
Если устройство видно как unknown device, но не видно в pcsc_scan, обновите:
sudo apt update
sudo apt upgrade pcscd libccid
или аналогично в вашем дистрибутиве.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.