·         Зачем нужен файловый шлюз
·         Что будет с приложениями RTSOrder, RTSSign и RTSVerif
·         Как работает файловый шлюз
·         Какой протокол используется для обмена с почтовым сервером
·         Как переключится с использования протокола IMAP на POP3 и наоборот
·         Есть ли в файловом шлюзе гарантированная доставка
·         Из каких компонентов состоит файловый шлюз
·         Что такое EDIMailService
·         Как связывается EDIMailService и файловый шлюз
·         Можно ли запускать файловый шлюз как службу 
·         Как устроена адресация в файловом шлюзе
·         Как происходит обновление базы пользователей ЭДО
·         Автоматические обновления. Как отказаться от автоматического обновления базы пользователей ЭДО и ПО ЭДО
·         Как установить файловый шлюз
·         Какие настройки есть в файловом шлюзе
·         Сколько файловых шлюзов можно подключить к службе EDIMailService
·         Как установить второй экземпляр файлового шлюза
·         Как настроить файловый шлюз для работы с общими папками (shared folders)
·         Как загрузить ключи пользователя в реестр для службы, работающей под системной учетной записью
·         Как настроить начальный номер сквозной нумерации принимаемых файлов
·         Как настроить архивацию отправляемых и принимаемых файлов в определенную папку
·          Как настроить реакцию на сообщение, которое не удается расшифровать или у которого не удается проверить ЭЦП
·         Где хранятся настройки соединения с почтовым сервером
·         Какими должны быть настройки сети для доступа к точке распространения Списка отозванных сертификатов (СОС)
·         Можно ли запускать файловый шлюз и EDIMailService под разными пользователями
·         Как проверить работу файлового шлюза
·         Как сообщить об обнаруженной ошибке в работе файлового шлюза
·         Совместим ли новый файловый шлюз с файловым шлюзом ЭДО РТС
·         Что будет, если послать сообщение из файлового шлюза контрагенту без файлового шлюза
·         Могу ли я сам сделать аналог файлового шлюза
·         Где находится описание API для нового файлового шлюза
·         Где можно найти список документов регламентирующих порядок получения доступа к файловому шлюзу
·         Зачем нужно писать заявление при получении файлового шлюза
·         Какую область действия нужно указывать при создании сертификата в случае использования файлового шлюза для получения доступа к приложениям ЭДО Московской Биржи 
·         Можно ли использовать имеющиеся в компании сертификаты с любой областью действия, выданные УЦ Московской Биржи, для подключения к приложениям системы ЭДО, услуги доступа к которым предоставляет ООО "МБ Технологии" 
·         Что необходимо указывать в заявлении на доступ к приложениям системы ЭДО 
·         "Как оплатить услуги ООО МБ Технологии" 
·         Куда обращаться с вопросами по подключению и техническому сопровождению файлового шлюза 
Зачем нужен файловый шлюз

Файловый шлюз Московской Биржи предназначен для замены файлового шлюза ЭДО РТС в следующих сервисах МБ:

·         предоставление клиринговых отчетов срочного рынка Московской Биржи и Биржи СПб

·         информационное взаимодействие с Клиентским центром Московской Биржи и АКБ НКЦ

·         информационное взаимодействие с системой отчета внебиржевых сделок (OTC-клиент)

Планируется использование файлового шлюза для других сервисов Московской Биржи.

Что будет с приложениями RTSOrder, RTSSign и RTSVerif

В ТС Плаза с 1 октября 2013 произведен отказ от использования электронной подписи, которая заменена на АСП (парой логин-пароль)

Приложения RTSSign и RTSVerif снимаются с поддержки в связи с прекращением использования

Как работает файловый шлюз

Файловый шлюз является одним из инструментов ЭДО Московской Биржи. Отправляемый через файловый шлюз файл автоматически подписывается электронной подписью отправителя с использованием СКЗИ "Валидата CSP", шифруется на сертификатах получателя, и в виде вложения почтового сообщения отправляется через почтовый сервер ЭДО МБ получателю. Файловый шлюз на стороне получателя автоматически принимает почтовое сообщение, расшифровывает полученный файл, проверяет подпись отправителя и выкладывает полученный файл в файловую папку в соответствии с правилами файлового шлюза.

Какой протокол используется для обмена с почтовым сервером

Отправка сообщений производится по протоколу SMTP, прием сообщений может производится по протоколам IMAP или POP3. Если почтовый ящик используется не только для работы ЭДО, а еще и для обычного почтового обмена, или с почтовым ящиком работают одновременно несколько файловых шлюзов с РАЗНЫХ компьютеров, то для приема следует использовать протокол IMAP. Если почтовый ящик выделен монопольно для использования ЭДО с данного компьютера, то рекомендуется использовать более быстрый POP3. В зависимости от настроек почтового сервера обмен с почтовым сервером может шифроваться с помощью SSL или TLS.

Как переключится с использования протокола IMAP на POP3 и наоборот

При использовании протокола IMAP сообщения ЭДО раскладываются по папкам внутри почтового ящика. При переходе с IMAP на использование POP3 сообщения, лежащие в папках, будут занимать место в почтовом ящике, но будут недоступны для EDIMailService, так как POP3 не имеет средств для работы с папками внутри почтового ящика. В силу этих обстоятельств при переходе с IMAP на POP3 рекомендуется удалить папки внутри почтового ящика.

При  работе по IMAP протоколу EDIMailService запоминает, что почту, приходящую на почтовый ящик, надо раскладывать по папкам внутри почтового ящика. При замене в .ini файлах почтовых url с IMAP на POP3 запомненные действия продолжат выполняться, тем самым сделав входящую почту недоступной, т.к. POP3 не может достать ее из папок внутри почтового ящика. В силу этих обстоятельств при переходе с IMAP на POP3 НЕОБХОДИМО УДАЛИТЬ файл mail.sqlite3 из рабочего каталога EDIMailService.

Порядок переключения с использования IMAP на использование POP3:
остановить
EDIMailService;
удалить файл mail.sqlite3 из рабочей папки EDIMailService;
в настроечных файлах FileGate (обычно FileGate.ini) заменить подстроку "imap:" на "pop3:", "imaps:" на "pop3s:", если в конце заменяемых строк стоит двоеточие и число, то число 143 заменяем на 110, а 993 на 995; если в той же секции есть строка port=ЧИСЛО, то заменяем число по тому же правилу.

Порядок переключения с использования POP3 на IMAP:
остановить
EDIMailService;
удалить файл mail.sqlite3 из рабочей папки EDIMailService;
в настроечных файлах FileGate (обычно FileGate.ini) заменить подстроку "pop3:" на "imap:", "pop3s:" на "imaps:", если в конце заменяемых строк стоит двоеточие и число, то число 110 заменяем на 143, а 995 на 993; если в той же секции есть строка port=ЧИСЛО, то заменяем число по тому же правилу.

Есть ли в файловом шлюзе гарантированная доставка

Файловый шлюз реализует механизм гарантированной доставки на базе квитанций, предусмотренных DSN расширением SMTP протокола, описанного в стандарте rfc 3461 и сообщений Message Disposition Notification генерируемых EDIMailService в соответствии с стандартом rfc 3798. Сервис EDIMailService обеспечивает своевременное удаление почтовых квитанций из ящика пользователя.

Из каких компонентов состоит файловый шлюз

Файловый шлюз состоит из следующих узлов и компонентов:

·         Служба EDIMailService, обеспечивающая взаимодействие клиентских приложений с криптографией и почтовыми серверами

·         Библиотека EDIMailDLL.dll, обеспечивающая API для работы со службой EDIMailService

·         Файловый шлюз FileGate.exe, обеспечивающий обработку сообщений в соответствии с правилами приема и отправки

·         Настроечные ini-файлы и скрипты

·         База данных пользователей ЭДО export.sqlite3 для организации системы адресации и контроля полномочий отправителей

·         Локальный справочник сертификатов администратора ЭДО для проверки сообщений, рассылаемых от имени администратора ЭДО МБ

 Кроме перечисленных компонентов для работы файлового шлюза на рабочем месте необходимо установить стандартные криптографические компоненты ЭДО МБ:

·         СКЗИ "Валидата"

·         ПК "Справочник сертификатов" (АПК Клиент ММВБ) и настроенный профиль для локального справочника сертификатов

Также необходим действующий криптографический ключ и соответствующий ему сертификат, выпущенный удостоверяющим центром Московской Биржи. В ПК "Справочник сертификатов" должен быть настроен доступ к сетевому справочнику сертификатов.

Что такое EDIMailService

Приложение EDIMailService.exe реализует функционал взаимодействия с почтовым сервером и криптографическими средствами, и предоставляет клиентским приложениям доступ к указанному функционалу через библиотеку EDIMailDLL.dll. Приложение EDIMailService может работать и как системная служба, и как консольное приложение.

EDIMailService регистрируется как служба под именем "Moscow Exchange EDI Mail Service" в процессе инсталляции файлового шлюза. Одновременно на одном копьютере может быть установлен и запущен только один экземпляр службы EDIMailService. Для установки в качестве службы приложение запускается с ключом -install, для удаления службы - с ключом -remove.

Исполняемые файлы по умолчанию устанавливаются в папку С:\Moscow Exchange\EDIMail\EDIMailService, служебный файлы и файлы логов устанавливаются в отдельную папку С:\Moscow Exchange\EDIMail\ProgData  

Как связывается EDIMailService и файловый шлюз 

Обмен между EDIMailService и файловым шлюзом (библиотекой EDIMail.dll) осуществляется по проприетарному протоколу на базе XML-RPC. Настройки обмена содержатся в секции [xmlrpc] и не требуют дополнительной настройки со стороны клиента. 

Можно ли запускать файловый шлюз как службу 

Файловый шлюз представляет собой консольное приложение и не умеет взаимодействовать с сервис-менеджером Windows, поэтому запустить его как службу и управлять им через оснастку "Панель управления" - "Администрирование" - "Службы" нельзя. Но служба EDIMailService может запускать и останавливать один или несколько файловых шлюзов одновременно с собственным запуском и остановкой. Если служба EDIMailService запускает файловые шлюзы вместе с собой, то окна файловых шлюзов размещается на невидимом десктопе и диагностику их работы можно будет увидеть только в их логах.

Для запуска/остановки файловых шлюзов вместе EDIMailService нужно в файле настроек EdiMail.ini сделать секцию filegateDir с указанием папок, где размещены файловые шлюзы, например:
[filegateDir]
FileGate1=C:\CompanyA\FileGate
FileGate2=C:\MyBank\FG
Кроме этого, в секции global этого же файла EdiMail.ini нужно задать скрипты, выполняемые при запуске и остановке EDIMailService:
[global]
pid=[]                                                                                  // Здесь будут храниться идентификаторы процессов FileGate
onInit=function() { load("startup.js"); }                                // Запуск FileGate из мест, перечисленных в секции filegateDir, если FileGate запустить не удалось,
                                                                                          // EDIMailService останавливается, в лог пишется причина отказа в запуске FileGate
onShutdown=function() {for (var i in pid) {kill(pid[i]);}}       // Остановка запущенных FileGate

для справки - скрипт startup.js запуска FileGate:

 

system("taskkill /f /im FileGate.exe");
for (var i in iniFile.filegateDir) {
   var dir = cd(iniFile.filegateDir[i]);
   pid[i] = spawn("FileGate.exe", "/ini:FileGate.ini");
   cd (dir);
   if (pid[i] == 0 || pid[i] == -1) {
      var msg = "no FileGate.exe in "+iniFile.filegateDir[i];
      for (var ii in pid) {
         if (ii != i)
            kill(pid[ii]);
      }
      throw msg;
   }
}
sleep(3000000);
for (var i in iniFile.filegateDir) {
   if (procstat(pid[i]) != "active") {
      msg = "Can't start FileGate in "+iniFile.filegateDir[i];
      for (var ii in pid) {
         kill(pid[ii]);
      }
      throw msg;
   }
}

Как устроена адресация в файловом шлюзе

Для совместимости с приложениями, использующими ЭДО РТС, адрес ЭДО МБ реализован по аналогичной схеме. Идентификация участника ЭДО осуществляется по коду ЭДО (аналогу кода РТС), обязательный добавочный код называется кодом сервиса и соответствует IMAP-папке в почтовом ящике.

Код ЭДО привязывается к адресу в ЭДО ММВБ, допускается использование разных кодов для разных почтовых ящиков.

Код ЭДО присваивается участнику по его заявлению, в настоящий момент длина кода ограничена 7 символами.

 

Для первого шлюза Клиента в базе администратора по умолчанию прописывается код сервиса REPORT, его и нужно вводить при установке шлюза. Использование других кодов сервисов нужно согласовать с отделом техдоступа и указать непосредственно в заявлении.

 

Как происходит обновление базы пользователей ЭДО

Файл с базой пользователей включен в дистрибутив, а также доступен на сайте УЦ МБ:

http://fs.moex.com/cdp/po/export.sqlite3

База пользователей может обновляться двумя способами – автоматически, путем рассылки служебных сообщений с файлом базы от имени администратора ЭДО, либо вручную, для этого данный файл необходимо скачать с сайта и вручную поместить в каталог C:\Moscow Exchange\EDIMail\ProgData (или иной, указанный в настройках службы EDIMailService)

Автоматические обновления. Как отказаться от автоматического обновления базы пользователей ЭДО и ПО ЭДО

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

Если вы по каким-то причинам хотите самостоятельно скачивать и устанавливать эти обновления, вы можете запретить автоматическую установку обновлений. Для этого в файле настроек службы EDIMailService EdiMail.ini сделайте секцию:
[
permission]
updateUsersDB = false            // Запрет на автоматическое обновление базы данных пользователей ЭДО
updateEDIMailService = false  // Запрет на автоматическое обновление ПО EDIMailService
updateFileGate = false             // Запрет на автоматическое обновление ПО FileGate

Если понадобится разрешить обновление, замените false на true или удалите соответствующую строку (всю секцию).

Как установить файловый шлюз

Перед установкой файлового шлюза необходимо установить СКЗИ "Валидата CSP" и ПК "Справочник сертификатов" (АПК_Клиент_МБ_рус.rtf ). При этом необходимо помнить, что при установке криптопровайдера нужно выбрать режим выборочной установки и  отключить установку TLS.

Для установки файлового шлюза необходимо воспользоваться выданным при регистрации дистрибутивом. По умолчанию, дистрибутив устанавливает приложения в папку Moscow Exchange\EDIMail на диск с операционной системой. Место установки можно изменить. После установки файлового шлюза необходимо произвести его ручную настройку.

Для корректной работы файлового шлюза на Windows7 или Windows Server 2008 R2, необходимо установить ServicePack 1, либо скачать и добавить следующее исправление Windows6.1-KB975858-v2-x86.msu (http://support.microsoft.com/kb/975858/ru)

Какие настройки есть в файловом шлюзе

Описание настроек службы EDIMailService и файлового шлюза приведены в документации на сайте УЦ МБ: Описание параметров настройки EDIMailService (doc, 112 Кб)

Сколько файловых шлюзов можно подключить к службе EDIMailService

К службе EDIMAilService можно подключить как один, так и несколько файловых шлюзов. Каждый файловый шлюз должен иметь адрес ЭДО (код ЭДО + сервис ЭДО), внесенный в базу участников ЭДО. Допускается, но не рекомендуется запуск файловых шлюзов с одинаковым адресом ЭДО.

Как установить второй экземпляр файлового шлюза

Т.к. инсталлятор пытается повторно установить службу EDIMailService, то не рекомендуется повторно запускать дистрибутив для установки второго экземпляра файлового шлюза на одну машину.

Вместо этого рекомендуется скопировать папку с файловым шлюзом в другое место, назовем его для примера C:\FileGate2, и дополнительно настроить реквизиты файлового шлюза:

·         Параметры соединения с почтовым сервисом (см. ниже)

·         Реквизиты идентификации файлового шлюза:

[self]
ticker=<
код ЭДО>
service=<
имя сервиса>

Для запуска второго экземпляра файлового шлюза вместе со службой нужно в файле настроек службы EDIMailService, который называется EdiMail.ini, в секции
[filegateDir]
Filegate1=...
добавить строку с указанием местонахождения скопированного файлового шлюза. Для нашего примера, где  второй экземпляр файлового шлюза находится в C:\FileGate2, эта строка будет выглядеть так:
Filegate2=C:\FileGate2

Как настроить файловый шлюз для работы с общими папками (shared folders)

Если вы хотите, чтобы файловый шлюз забирал для отсылки или выкладывал принятые файлы в общие папки на некотором файл-сервере, вам нужно дополнительно настроить доступ службы EDIMailService к этим общим папкам

Это можно сделать двумя способами:

При использовании UNC имен файлов перед запуском FileGate нужно задать логин и пароль, используемые для авторизации доступа к используемым им общим папкам. Для этого в начало скрипта startup.js, о котором рассказывалось в разделе "Можно ли запустить FileGate как службу", нужно добавить вызовы функции system по числу используемых общих папок вида:

system("net use \\\\SERVER\\FOLDER /u:USER PASSWORD");

где SERVER - имя файл-сервера, FOLDER - имя общей папки на файл-сервере SERVER, USER - имя пользователя файл-сервера, PASSWORD - пароль пользователя на файл-сервере. Имена общих папок в правилах FileGate в этом случае должны указываться по правилам UNC \\SERVER\FOLDER\...

При использовании имен сетевых дисков в начало скрипта startup.js, о котором рассказывалось в разделе "Можно ли запустить FileGate как службу", нужно добавить вызовы функции system по числу используемых сетевых дисков вида:

system("net use DISK: \\\\SERVER\\FOLDER /u:USER PASSWORD");

где DISK - буква используемого сетевого диска, SERVER - имя файл-сервера, FOLDER - имя общей папки на файл-сервере SERVER, USER - имя пользователя файл-сервера, PASSWORD - пароль пользователя на файл-сервере. Имена общих папок в правилах FileGate в этом случае должны указываться с помощью сетевых дисков DISK:\...

При работе с общими папками и сетевыми дисками надо иметь ввиду, что назначение сетевых дисков, даже указанное в команде net use с ключом /permanent действует только в пределах интерактивной logon-сессии и поэтому не распространяется на службу EDIMailService, даже если она работает под тем же логином, что и вы в интерактивной сессии. Служба может использовать только назначения, сделанные с помощью функции system("net use ...")

Как загрузить ключи пользователя в реестр для службы, работающей под системной учетной записью

Предполагается, что СКЗИ "Валидата у вас уже установлен. Для решения этой задачи надо отсюда скачать утилиту PsExec, распаковать ее в рабочую папку Далее надо запустить командную строку от имени администратора и перейти в рабочую папку, где лежит PsExec Далее надо дать команду

 

@PsExec.exe -i -s -d "%ProgramFiles%\Validata\VDCSP\vdcsp_cfg.exe"

в появившемся окне конфигурации СКЗИ скопировать ключи

Как настроить начальный номер сквозной нумерации принимаемых файлов
  1. Копируем нижеследующий фрагмент текста в файл set_start_num.js, находящийся в той же папке, что и startup.js и watchdog.js

 

--------------------------- Начало set_start_num.js -------------------------------
var filegatePath = "C:\My filegate\FileGate.ini"; /* full path to FileGate.ini in use */
var startNum = 123;                                 /* starting number for received file enumeration */
var maxDate = "18 Febrary 2014 14:52";              /* Date for start number patch applay */
if (new Date() < new Date(maxDate) ) {
  var num = parseInt(readParam("infilenum "+filegatePath));
  if (!num || num < startNum)
  {
     saveParam("infilenum "+filegatePath, startNum.toString());
  }
}
---------------------------
Конец set_start_num.js -------------------------------

2. Редактируем первые три строки файла set_start_num.js следующим образом:

 

3. Редактируем файл EDIMailSrvs.ini, делаем там секцию [global] с параметром
onInit=function() { load("set_start_num.js"); }

4. Запускаем EDIMailService / FileGate

5. После запуска редактируем EDIMailSrvs.ini, удаляем оттуда строку onInit=function() { load("set_start_num.js"); }

Как настроить архивацию отправляемых и принимаемых файлов в определенную папку

Начиная с версии 0.12.1.12 службы EDIMailService при отправке сообщения срабатывает JanaScript событие onMsgSend, а при получении сообщения срабатывает событие onMsgReceive. Вы можете создать свои обработчики этих событий и запрограммировать их для ведения архива.

Приведем пример таких обработчиков. Для простоты изложения оба обработчика будут использовать одну и ту же функцию для обработки сообщений. Чтобы не загромождать ini файлы эта функция будет вынесена в отдельный файл, с названием archive.js. Файл archive.js должен размещаться в том же каталоге, что и другие скрипты - startup.js, watchdog.js. Для подключения обработчиков событий нужно в файле EDIMailSrvs.ini каждого запускаемого вами FileGate создать секцию [global] с параметрами:
[
global]
onMsgReceive = function(msg) { load('archive.js'); processMsg(msg); }
onMsgSend = function(msg) { load('archive.js'); processMsg(msg); }

Что делает скрипт в файле archive.js:

 --------------------------- Начало archive.js -------------------------------
function processMsg(msg)
{
    var archRootDir = "D:\\EDIMail\\arch\\";
    msg.needDecrypt = true;
    var sender = msg.ediMailSender;
    var archDir = archRootDir+'\\'+sender.ticker;
    try {
        var dir_status = stat(archDir);
        if (dir_status.mode & 0x8000)
        {
            unlink(archDir);
            mkdir(archDir);
        }
    }
    catch(err)
    {
        if (err == 'File not found')
            mkdir(archDir);
        else
            throw err;
    }
    var attNumMax = msg.numStreams;
    for (var attNum = 1; attNum <= attNumMax; ++attNum)
    {
        var fileName = msg.attachmentFilename(attNum);
        for (var cnt = 0;; ++cnt)
        {
            if (cnt)
                var newFileName = fileName+'('+cnt.toString()+')';
            else
                newFileName = fileName;
            try {
                stat(archDir+'\\'+newFileName);
            }
            catch (err)
            {
                var stream = new EDIMailStream(archDir+'\\'+newFileName, 'wb', '');
                break;
            }
        }
        msg.attachToStream(attNum, stream);
        stream.dispose();
    }
}
---------------------------
Конец archive.js -------------------------------

 Как настроить реакцию на сообщение, которое не удается расшифровать или у которого не удается проверить ЭЦП

Если EDIMailService / FileGate не могут расшифровать прикрепленный к сообщению ЭДО файл или проверить его ЭЦП, то сообщение отклоняется (отправитель информируется о том, что сообщение не получено) с соответствующей записью в логе. Если вы хотите какой-то дополнительной реакции на это событие, то в качестве примера покажем, как настроить следующую реакцию:

При приходе сообщения ЭДО, приложенный к которому файл не расшифровывается или ЭЦП которого не проходит проверку:

 Для выполнения такой настройки необходимо:
-  в файл EDIMailSrvs.ini каждого FileGate вставить секцию [global] с параметром
onMsgReceive=function(msg) {load('cant_decrypt_msg.js'); cant_decrypt_msg(msg); }
- поместить скрипт cant_decrypt_msg.js в ту же папку, что и уже имеющиеся скрипты startup.js, watchdog.js
- отредактировать cant_decrypt_msg.jsб заменив в начале файла строку
var archRootDir = "D:\\ME_EDIMail\\Bin\\arch";
на путь до своей папки, куда будут складываться нерасшифрованные сообщения; если папке не существует, это не будет ошибкой, просто сообщения архивироваться не будут;
- настроить в EDIMail.ini секцию
[notification], если ранее не настраивали.

--------------------------- Начало cant_decrypt_msg.js -------------------------------
var archRootDir = "D:\\ME_EDIMail\\Bin\\arch";
var ini;

if (!String.prototype.format) {
  String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function(match, number) {
      return typeof args[number] != 'undefined'
        ? args[number]
        : match
      ;
    });
  };
}

function parseINIString(data) {
    var regex = {
        section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,
        param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,
        comment: /^\s*;.*$/
    };
    var value = {};
    var lines = data.replace(/\/\/\/\//g,"//").split(/\r\n|\r|\n/);
    var section = null;
    lines.forEach(function(line){
        if(regex.comment.test(line)){
            return;
        }else if(regex.param.test(line)){
            var match = line.match(regex.param);
            if(section){
                value[section][match[1]] = match[2];
            }else{
                value[match[1].toLowerCase()] = match[2];
            }
        }else if(regex.section.test(line)){
            var match = line.match(regex.section);
            value[match[1].toLowerCase()] = {};
            section = match[1].toLowerCase();
        };
    });
    return value;
}

function cant_decrypt_msg(msg)
{
    var serviceFolder = iniFile.executable.substring (0, iniFile.executable.lastIndexOf('\\')+1);
    var file;
    try {
        file = new EDIMailStream(serviceFolder+'EDIMail.ini', 'rt', '');
    }
    catch (err) { return false; }
    ini = parseINIString(file.readText(file.length));
    file.dispose();
    var backup = new EDIMailStream('', '');
    msg.toStream(backup);
    var url=null;
    if (iniFile.notification && msg.numStreams == 0)
    {
        try {url = new EDIMailURL(ini.notification.url, "ini.notification");} catch(err) { return false; }
        var notif = new EDIMailMessage("ini.notification");
        notif.addRecepient(ini.notification.address);
        notif.subject = notif.subject.format(iniFile.hostname);
        notif.text = notif.text.format("Can't decrypt message from "+msg.ediMailSender.fullname+" sender ticker "+msg.ediMailSender.ticker+" received by FileGate", iniFile.filegateDir[i]);
        notif.postTo(url);
        notif.dispose();
        url.dispose();
        try {var dir_status = stat(archDir);} catch (err) { print ('Archive directory does not exist'); backup.dispose(); return false;}
        if (dir_status.mode & 0x4000)
        {
            var now = new Date();
            var fileName = 'cant_decrypt_'+now.getFullYear()+'.'+(
now.getMonth()+1)+'.'+now.getDate()+'_'+now.getHours()+'.'+now.getMinutes();
            for (var cnt = 0;; ++cnt)
            {
                if (cnt)
                    var newFileName = fileName+' ('+cnt.toString()+')';
                else
                    newFileName = fileName;
                try {
                    stat(archDir+'\\'+newFileName);
                }
                catch (err)
                {
                    var stream = new EDIMailStream(archDir+'\\'+newFileName, 'wb', '');
                    backup.seek(0,0);
                    backup.writeToStream(stream);
                    stream.dispose();
                    break;
                }
            }
        }
    }
    backup.dispose();
}
---------------------------
Конец cant_decrypt_msg.js -------------------------------

 

 

 

Где хранятся настройки соединения с почтовым сервером

Настройки соединения с почтовым сервером хранятся в файле настроек файлового шлюза FileGate.ini:

[FileGate]
sleeptime=20
srvcini=EDIMailSrvs.ini
ERROR=.\error\
recvparam=IMAP  ;ссылка на секцию входящих сообщений
sendparam=SMTP  ;ссылка на секцию исходящих сообщений

[IMAP]
login = <логин для IMAP>
password
= <пароль для IMAP>
url=imap:////mars.micex.ru:993    ;адрес почтового сервера ЭДО
TLScheck = host
verbose = yes
TLSfirst = yes
useTLS = use

[SMTP]
login = <логин для SMTP>
password
= <пароль для SMTP>
url=smtp:////mars.micex.ru:25  ;адрес почтового сервера ЭДО
TLScheck = host
verbose = yes
TLSfirst = no
useTLS = try

Для корректной работы с почтой необходимо установить цепочку сертификатов почтового сервера согласно инструкции:

Инструкция по установке сертификата

Какими должны быть настройки сети для доступа к точке распространения Списка отозванных сертификатов (СОС)

Для доступа к точке распространения СОС, использующегося для сертификатов, изготовленных до 1.06.13 (старый формат сертификатов), строка доступа имеет вид:  

ldap://vcert.pki.micex.ru/DC=pki,DC=micex,DC=ru

а) Для пользователей, работающих в корпоративной (торговой) сети Московской Биржи, необходимо убедиться, что в конфигурации сетевого протокола TCP/IP на компьютере добавлен адрес DNS-сервера 195.4.1.11 и в используемых Участником СЭД средствах телекоммуникации «открыт» 389 порт для работы по LDAP-протоколу.

б) Для пользователей, работающих в сети Интернет, никаких дополнительных настроек выполнять не надо, необходимо только, чтобы в используемых Участником СЭД средствах телекоммуникации был «открыт» 389 порт для работы по LDAP-протоколу.

Для доступа к точке распространения СОС, использующегося для сертификатов, изготовленных после 1.06.13 (новый формат сертификатов), строка доступа имеет вид:  

ldap://vcert.pki.micex.ru:50001/C=ru

Настройки сети для доступа к данной точки распространения СОС отличаются только номером порта – 50001 .

в) Для всех пользователей необходимо обеспечить доступ к точке распространения СОС ГУЦ Минкомсвязи РФ http://rostelecom.ru/cdp/guc_gost12.crl, http://reestr-pki.ru/cdp/guc_gost12.crl, http://company.rt.ru/cdp/guc_gost12.crl . СОС ГУЦ Минкомсвязи РФ устаревают в течение месяца, поэтому при отсутствии доступа к этим точкам распространения необходимо обновлять этот СОС вручную.

 

Можно ли запускать файловый шлюз и EDIMailService под разными пользователями

Рекомендуемый режим - запускать службу EDIMailService и файловые шлюзы под одним пользователем, для которого установлены сертификаты/ключи. В случае хранения ключей в Registry запуск под разными пользователями не допускается. В случае хранения ключей на съемном диске использование разных учетных записей допустимо.

Как проверить работу файлового шлюза

Для проверки работы файлового шлюза настроено тестовое правило c использованием папок TO_HELPDESK и FROM_HELPDESK (сообщения отправляются в адрес EMAIL@AORTS.HELP). Специалисты службы технической поддержки смогут проверить корректность отправки сообщений в этот ящик.

Как сообщить об обнаруженной ошибке в работе файлового шлюза

Информацию с описанием выявленной ошибки или пожелания по улучшению работы сервисов просьба направлять по адресу help@moex.com с указанием темы "Замечания по файловому шлюзу". Просьба прикладывать к письму лог-файлы и описание выявленных ошибок.

Совместим ли новый файловый шлюз с файловым шлюзом ЭДО РТС

Новый файловый шлюз совместим со старым шлюзом на уровне правил приема-отправки и формата конверта сообщения. Обмен сообщениями между двумя почтовыми иерархиями невозможен.

Что будет, если послать сообщение из файлового шлюза контрагенту без файлового шлюза

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

Могу ли я сам сделать аналог файлового шлюза

Для разработки собственных приложений на базе нового файлового шлюза МБ предлагает API, реализованный в C-библиотеке EDIMail.dll. Библиотека входит в комплект дистрибутива (вместе с h-файлом)

Где находится описание API для нового файлового шлюза


Описание API входит в комплект дистрибутива, а также доступно на сайте УЦ МБ:
 Описание API EDIMail (doc, 61 Кб)

 

Где можно найти список документов регламентирующих порядок получения доступа к файловому шлюзу

Список необходимых документов находится на сайте Московской Биржи в разделе Перевод сервисов ЭДО, использующих сертификаты НП РТС, в единую систему ЭДО Московской Биржи - http://moex.com/a1685

Зачем нужно писать заявление при получении файлового шлюза

Если не написать заявление на подключение, то информация о наборе сервисов, а также о соответствии кода ЭДО участника, его сертификате и его почтовом адресе не попадет в базу ЭДО. Без такой информации автоматизированная оправка сообщений такому участнику и автоматизированное получение от него сообщений будет невозможно. 

Какую область действия нужно указывать при создании сертификата в случае использования файлового шлюза для получения доступа к приложениям ЭДО Московской Биржи 

Файловый шлюз обеспечивает возможность использования сертификатов с любой областью действия. Если внутренними документами организатора подсистемы СЭД установлено требование использования сертификатов с определенной областью действия, то необходимо указать эту область действия. Так, например, для получения клиринговых отчетов по итогам торгов на срочном рынке от АКБ НКЦ необходимо указывать область действия "Электронный документооборот АКБ НКЦ". Эту область  действия рекомендуется использовать "по умолчанию".

Можно ли использовать имеющиеся в компании сертификаты с любой областью действия, выданные УЦ Московской Биржи, для подключения к приложениям системы ЭДО, услуги доступа к которым предоставляет ООО "МБ Технологии" 

Да, можно. В заявлении на подключение к приложениям системы ЭДО нужно указать строку DN (имя субъекта) соответствующего сертификата. При этом необходимо учитывать, что сертификат должен соответствовать требованиям, указанным в предыдущем пункте.

Что необходимо указывать в заявлении на доступ к приложениям системы ЭДО 

·    Для подключения к приложениям системы ЭДО, услуги доступа к которым предоставляет ООО "МБ Технологии", участник СЭД, имеющий действующие сертификаты Московской Биржи, может использовать такие сертификаты для доступа к указанным приложениям системы ЭДО. Он может указать владельцев таких сертификатов в заявлении. В случае отсутствия действующих сертификатов Московской Биржи участник СЭД должен сначала изготовить такие сертификаты.

·    Если Участник СЭД хочет предоставить доступ к выбранным приложениям системы ЭДО (в части услуг ООО "МБ Технологии") всем владельцам сертификатов своей компании, ему необходимо сделать отметку в соответствующем поле заявления, а в таблице в столбце “Всем” указать для каждого выбранного приложения тип предоставляемого доступа.

·    Если Участник СЭД хочет предоставить доступ к выбранным приложениям системы ЭДО (в части услуг ООО "МБ Технологии") не всем владельцам сертификатов своей компании, ему необходимо переписать соответствующую строку DN (имя субъекта) из сертификата допускаемого владельца сертификата в поле “1-й Владелец”, “2-й Владелец” и т.д., а в таблице в столбце для выбранного владельца сертификата указать напротив требуемых приложений тип предоставляемого доступа.

·    В столбце таблицы “Почтовый адрес в СЭД МБ” необходимо указать адрес почтового ящика, открытого на сервере Московской Биржи для участника СЭД. В случае отсутствия такого почтового ящика у участника СЭД, данное поле не заполняется

 ·   В поле “Почтовый адрес в СЭД МБ по умолчанию” указывается зарегистрированный в СЭД Московской Биржи электронный почтовый адрес компании (участника СЭД), на который будут приходить сообщения других участников СЭД в случае, если сообщение отправляется по системе ЭДО в адрес компании без указания конкретного почтового адреса. В случае отсутствия такого почтового ящика у участника СЭД, данное поле не заполняется.

Как оплатить услуги ООО "МБ Технологии" 

ООО "МБ Технологии" самостоятельно выставляет Вам счет для оплаты услуг по доступу к приложениям системы ЭДО после получения соответствующих документов (“Заявление на доступ к приложениям системы ЭДО / на изменение схемы подключения к приложениям системы ЭДО” и “Схема подключения”). Порядок Ваших действий при оплате услуг ООО "МБ Технологии" представлен в Условиях оказания услуг информационно-технического обеспечения Общества с ограниченной ответственностью "МБ Технологии" - http://moex.com/a1685.

Куда обращаться с вопросами по подключению и техническому сопровождению файлового шлюза 

Продажа услуг ЭДО:

(по рабочим дням, с 09:00 до 18:00)
+
7 (495) 363-3232, доб. 3377, +7 (495) 232-0555
e-mail:
tc-sales@moex.com

Техническая поддержка ЭДО:

(по рабочим дням, с 08:00 до 20:00)
+
7 (495) 733-9507
+7 (495) 287-7691
e-mail:
help@moex.com