23.11.2012

Работа платформы 1С:Предприятие с КриптоПро в ОС Linux

В статье рассматриваются некоторые особенности работы КриптоПро в ОС Linux и взаимодействия платформы 1С:Предприятие с КриптоПро.

В настоящее время поддержка криптографии при работе на ОС Linux ограничена возможностью использования только КриптоПро (http://www.cryptopro.ru). Платформа 1С:Предприятие обращается к модулю криптографии при создании объекта МенеджерКриптографии. В конструкторе объекта МенеджерКриптографии второй параметр означает путь к библиотеке модуля криптографии, реализующий функциональность, необходимую платформе. Установленный модуль криптографии КриптоПро может содержать библиотеку libcapilite.so - тогда следует указать путь к этой библиотеке.

Однако, в текущих версиях КриптоПро библиотека libcapilite.so отсутствует. Разработчики КриптоПро разделили функциональность, изначально содержавшуюся в одной библиотеке, на несколько библиотек. К ним относятся: libcapi10.so, libcapi20.so, libcapiext.so. Для того, чтобы платформа 1С:Предприятие могла использовать библиотеку КриптоПро нужно выполнить команду по созданию одной библиотеки из нескольких.

gcc -shared -Wl,-soname,libcapi10.so.3.6.1,libcapi20.so.3.6.1 -o libcapilite.so

Команда выполняется в каталоге lib/ia32 или lib/amd64 в зависимости от разрядности установленного модуля криптографии.

Для работы команды gcc может понадобиться дополнительная установка gcc из репозитория используемого дистрибутива Linux. Например, для CentOS это команда

yum install gcc

Запуск Firefox для работы с КриптоПро

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

В случае запуска браузера Firefox при обращении к объекту МенеджерКриптографии может произойти аварийный выход из браузера. При этом, если браузер был запущен из консоли, в консоли будут следующие сообщения:

Warning: Fatal Error:
_XmGetDefaultDisplay cannot be used prior to VendorS.Initialize, returns NULL
Warning: Urm__OpenHierarchy: Display not yet opened - Invalid URM code
Error: MrmOpenHierarchy failed: can't open hierarchy.


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

Для обхода этой проблемы браузер можно запускать следующей командой

LD_PRELOAD="libXm.so.3" firefox