Расшифровка подписанных файлов MAERSK
Компания Маерск присылает файлы, подписанные электронной подписью и зашифрованные. Для извлечения XML файлов, находящихся внутри контейнеров, потребуется:
1. Установить криптопровайдер. На серверах “КМТП” ставилась 'ViPNet CSP 4
', бесплатная версия.
2. Установить бесплатную версию утилиты '“Крипто АРМ”
'. На сайте нет отдельной утилиты для бесплатной версии, просто обычная версия по истечению триального периода станет бесплатной версией “Старт”.
3. Скачать и установить корневые сертификаты (Минкомсвязь и ООО УЦ ГИС) с сайта: https://ca.gisca.ru/support/repository/. Лучше также установить все списки отзыва сертификатов. В дальнейшем, файлы будут обрабатываться отдельным пользователем, от имени которого будет выполняться назначенное задание в планировщике. Все сертификаты нужно устанавливать именно под этим пользователем (включая и следующий пункт).
4. Установить годовой сертификат, который присылают MAERSK для расшифровки подписи в личное хранилище сертификатов (можно еще на всякий случай поставить в “сертификаты других пользователей”).
5. Для пользователя, под которым устанавливаются сертификаты и будет выполняться скрипт обработки - нужно создать понятное имя профиля в программе “Крипто АРМ” в управлении профилям программы. Если всё сделано верно, и нужные сертификаты в цепочке установлены, то сертификат пользователя в консоли будет гореть зеленым либо желтым, его свойства будут открываться без проблем и в них отобразится вся цепочка сертификатов. В некоторых случаях это происходит не сразу. В конечном счете, это выглядит так:
6. Теперь можно создавать задание в планировщике, которое будет с определенным интервалом проверять заданную папку на предмет поступления файлов и извлекать их. Задание нужно выполнять независимо от регистрации пользователя при старте сервера. В задании требуется создать два действия. Первое действие запускает интерпретатор скрипта обработки подписанных файлов, с указанием имени скрипта, исходной папки, папки назначения для извлеченных XML-файлов и имени профиля программы “Крипто АРМ” (в данном случае имя профиля - “maersk”):
cscript.exe "f:\release_order\tdhelper.vbs" "f:\release_order\receive" "f:\release_order\success" "maersk" "T"
Второй шаг в задании будет запускать пакетный файл, который будет удалять файлы, из которых уже были извлечены XML:
F:\release_order\delete.cmd
Его содержимое:
del "f:\release_order\receive\*.*" /F /Q
7. На почтовом сервере нужно настроить Exchange Attachment Save таким образом, чтобы она складывала полученные от MAERSK файлы в папку, которую мы указали сприпту: “f:\release_order\receive”
. Для файлов типа p7s и sig с любым именем - подходит регулярное выражение на скриншоте:
8. При переносе или новой настройке надо модифицировать скрипт - в нем есть специфические для сервера пути к папкам.
9. Дальнейшую обработку XML-файлов будет производить СЕРВЕРНАЯ платформа 1С, поэтому для её учётной записи нужен доступ к папке, куда отправляются файлы XML: F:\release_order\success