Как пробросить сертификат Контура с сервера 1С на клиентский компьютер в среде Citrix

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

При работе в распределенных инфраструктурах, особенно когда используются зарубежные серверы (например, шведские серверы в Citrix) и виртуальные машины, пользователи часто сталкиваются с проблемой: 1С, запущенная в терминальной сессии, не видит сертификат электронной подписи (ЭЦП), который физически находится на токене или установлен локально. Попытки администраторов "открыть порты" часто не приводят к успеху, так как работа с криптографией в терминальной среде требует комплексной настройки виртуальных каналов и системных служб.

Разберем подробно, как обеспечить видимость сертификата Контура в 1С при работе через Citrix, какие настройки должны выполнить системные администраторы и почему классический проброс TCP-портов здесь может не помочь.

Анализируем архитектуру решения: почему порты не всегда главное

Проанализируем ситуацию: когда вы работаете в Citrix, ваша 1С фактически запускается на удаленном сервере, а на ваш локальный компьютер передается только "картинка" и данные ввода. Если обработка Контура в 1С требует подписи документа, она ищет криптопровайдер (например, КриптоПро CSP) и контейнер закрытого ключа именно на том сервере, где запущена 1С.

Для того чтобы сервер "увидел" ваш локальный сертификат, используется механизм Smart Card Redirection (перенаправление смарт-карт). Это не проброс порта в привычном понимании (как, например, порт 80 или 443), а использование виртуального канала внутри самого протокола доставки Citrix (ICA/HDX). По умолчанию Citrix использует порты 1494 и 2598. Если сессия уже установлена, значит, эти порты открыты, и дополнительные сетевые порты для "проброса сертификата" обычно не требуются.

Решение 1: Настройка политик перенаправления смарт-карт в Citrix

Это основной и наиболее правильный способ. Если 1С не видит токен (Рутокен, eToken), системным администраторам необходимо проверить настройки политик в Citrix Studio или через групповые политики (GPO). Рассмотрим шаги настройки:

  1. Проверим политику Smart card redirection. Она должна быть установлена в значение Allowed (Разрешено).
  2. Убедимся, что включена политика Trust managed Solutions, если используются специфические надстройки.
  3. На клиентском устройстве (с которого вы заходите в Citrix) должен быть установлен соответствующий драйвер смарт-карты и клиент Citrix Workspace app (или Receiver) с поддержкой USB-перенаправления.

Важно помнить: если токен физически вставлен в сервер 1С, а вы хотите видеть его в сессии, ситуация меняется. В этом случае сервер должен быть настроен на работу с локальными считывателями в терминальном режиме.

Решение 2: Проверка службы смарт-карт (Smart Card Service)

Выясним причину, по которой даже при включенных политиках сертификат может быть недоступен. Криптопровайдеры обращаются к устройствам через системную службу Windows. Разберем, что нужно проверить:

На обоих концах соединения (и на вашем локальном ПК, и на сервере 1С в Швеции) должна быть запущена служба Smart Card (SCardSvr). Если на сервере 1С эта служба отключена или находится в состоянии "Остановлена", 1С никогда не увидит ваш сертификат, даже если он успешно "проброшен" протоколом Citrix.

Рекомендуем установить тип запуска этой службы в значение Автоматически. Также на сервере 1С в настройках КриптоПро CSP на вкладке "Оборудование" должен быть добавлен считыватель "Все смарт-карты" или "Все подключенные считыватели".

Решение 3: Локальная установка сертификата в реестр (экспорт контейнера)

Если администраторы не могут настроить проброс через Citrix из-за политик безопасности, проанализируем альтернативный вариант — копирование контейнера закрытого ключа непосредственно на сервер 1С. Это часто называют "крайним вариантом", но он является самым стабильным.

Если ваш сертификат позволяет экспорт (не установлен флаг запрета экспорта при генерации в УЦ), вы можете:

  1. С помощью КриптоПро CSP скопировать контейнер с Рутокена в реестр локального компьютера.
  2. Экспортировать ветку реестра с контейнером.
  3. Импортировать эту ветку в реестр сервера 1С под учетной записью пользователя, который работает с Контуром.

Контейнеры в реестре обычно находятся по пути:

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\<SID>\Keys\ Внимание: при использовании этого метода физический токен больше не потребуется, но необходимо обеспечить строгую безопасность сервера, так как закрытый ключ будет храниться в его реестре.

Решение 4: Настройка локальных портов для Контур.Плагина

В некоторых случаях обработка Контура в 1С взаимодействует не напрямую с криптопровайдером, а через вспомогательные службы, такие как Контур.Плагин. Если системные администраторы спрашивают про конкретные порты, возможно, речь идет о взаимодействии локальных компонентов внутри сервера.

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

Если обработка Контура в 1С пытается вызвать плагин, установленный на вашем локальном ПК, через терминальную сессию — это практически неосуществимо без использования специальных средств "обратного проброса" портов. В такой ситуации единственный надежный путь — установка всех необходимых компонентов (КриптоПро, Контур.Плагин, сертификат) непосредственно на тот сервер, где исполняется код 1С.

Резюме для системных администраторов

Подведем итог для передачи технического задания админам:

  1. Проверьте работу службы SCardSvr на целевом сервере 1С.
  2. Включите политику Smart card redirection в настройках Citrix HDX.
  3. Если используется КриптоПро CSP, убедитесь, что в настройках (вкладка "Оборудование") установлена возможность работы с удаленными считывателями (PC/SC).
  4. Если обработка использует веб-интерфейсы внутри 1С, проверьте доступность портов 12222-12224 внутри сервера.

Рассмотрев все варианты, можно сделать вывод: в 90% случаев проблема решается именно правильной настройкой политик Citrix и службы смарт-карт, а не открытием внешних портов на сетевом оборудовании.

← На главную