Как использовать ЭЦП ФНС на виртуальном сервере Ubuntu при работе с macOS?

Системный администратор 1С v8.3 (Управляемые формы) Налоговый учет IT и автоматизация бизнеса
← На главную

Современные требования безопасности и переход на электронный документооборот ставят перед техническими специалистами сложные задачи. Одна из наиболее частых проблем — использование аппаратного ключа (токена) с подписью ФНС на удаленном виртуальном сервере, особенно если инфраструктура неоднородна (например, сервер работает на Ubuntu, а рабочая станция администратора или бухгалтера — на macOS). В этой статье мы подробно разберем, как обеспечить работу 1С-Отчетности в таких условиях, рассмотрим юридические и технические аспекты.

Вариант 1. Переход на работу через МЧД (Машиночитаемые доверенности)

Проанализируем текущее законодательство: с 2023–2024 годов основным стандартом работы сотрудников и уполномоченных лиц стала схема с использованием МЧД. Это наиболее изящный способ решить проблему отсутствия физического доступа к серверу.

Суть метода заключается в следующем: директор получает подпись в ФНС на физическом токене и хранит её у себя. Для отправки отчетности на сотрудника оформляется сертификат физического лица. Рассмотрим преимущества этого подхода:

Выясним, как это реализовать технически. Для работы подписи на Ubuntu нам все равно потребуется установленный криптопровайдер КриптоПро CSP. После получения файлов контейнера их необходимо импортировать в хранилище ключей под пользователем, от имени которого работает сервер 1С.

Вариант 2. Программный проброс USB-токена через сеть

Если необходимо использовать именно подпись руководителя, записанную на Рутокен, а физического доступа к серверу нет, нам помогут технологии USB-over-IP. Поскольку стандартный протокол RDP в клиенте для macOS часто некорректно пробрасывает смарт-карты на Linux-серверы, разберем альтернативные инструменты.

Одним из самых стабильных решений является VirtualHere. Проанализируем схему его работы:

  1. На компьютер с macOS (где физически вставлен токен) устанавливается клиентская часть VirtualHere Client.
  2. На сервере Ubuntu устанавливается серверная часть VirtualHere USB Server.
  3. Программа создает виртуальную шину USB, и сервер Ubuntu начинает видеть токен так, будто он вставлен непосредственно в его материнскую плату.

Для реализации этого метода на Ubuntu 18.04 выполним следующие действия в терминале:


wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdx86_64
chmod +x vhusbdx86_64
sudo ./vhusbdx86_64 -b

Также стоит рассмотреть решение USB Network Gate, которое специализируется на кроссплатформенном пробросе ключей и имеет официальную поддержку macOS и Ubuntu.

Вариант 3. Настройка окружения на стороне Ubuntu

Даже если мы успешно пробросили токен через сеть, система Ubuntu должна уметь с ним работать. Разберем по шагам настройку необходимых компонентов.

Во-первых, проверим наличие службы pcscd. Это демон смарт-карт, без которого КриптоПро не увидит ваш Рутокен. Установим и запустим его:


sudo apt-get update
sudo apt-get install pcscd libpcsclite1
sudo systemctl enable pcscd
sudo systemctl start pcscd

Во-вторых, проверим видимость токена средствами КриптоПро. Для этого используем утилиту list_readers. Посмотрим на пример команды:

/opt/cprocsp/bin/amd64/list_readers

Если в выводе команды появился ваш Rutoken, значит, проброс прошел успешно. Если нет — необходимо проверить драйверы токена (ifd-rutoken).

Вариант 4. Копирование контейнера (только для Rutoken Lite)

Разберем ситуацию, когда используется Рутокен Лайт. Важно понимать различие: ключи на Рутокен ЭЦП 2.0 или 3.0 часто генерируются как "неизвлекаемые" (аппаратные), и скопировать их нельзя. Однако Rutoken Lite по сути является защищенной флешкой.

Если ФНС выдала подпись на Рутокен Лайт, мы можем:

  1. Подключить токен к любому ПК с Windows.
  2. Через панель управления КриптоПро CSP скопировать контейнер в "Реестр" или на обычную флешку.
  3. Перенести папку с файлами контейнера (6 файлов с расширением .key) на сервер Ubuntu.
  4. Установить сертификат в систему Linux, указав путь к этой папке.

Для установки сертификата из скопированного контейнера на Linux используем команду:

/opt/cprocsp/bin/amd64/certmgr -inst -cont '\\.\HDIMAGE\название_контейнера'

Вариант 5. Особенности работы с macOS и RDP

Проанализируем проблему автора: при подключении через Microsoft Remote Desktop с Mac на Ubuntu токен не виден. Это происходит потому, что стандартный RDP-клиент для macOS требует специфической настройки для проброса смарт-карт.

Рассмотрим шаги для исправления:

Если стандартный RDP не справляется, мы настоятельно рекомендуем вернуться к Варианту 2 (VirtualHere), так как он работает на уровне USB-дескрипторов и гораздо стабильнее передает данные для криптографических операций.

Итоги и рекомендации

Подводя итог, можно сказать, что наиболее стабильным и современным решением является использование МЧД и подписи физического лица. Это избавляет системного администратора от необходимости настраивать сложные цепочки проброса USB-устройств через разные операционные системы.

Если же стоит задача работать именно с токеном директора, наиболее надежным техническим решением будет использование специализированного ПО типа VirtualHere в связке с правильно настроенной службой pcscd на стороне Ubuntu. Не забывайте также проверять версию КриптоПро CSP: для корректной работы на современных дистрибутивах Linux рекомендуется версия не ниже 5.0 R2.

← На главную