23.11.2012
В статье рассматриваются некоторые особенности работы КриптоПро в ОС 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
Платформа 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