В промышленном режиме

Запуск приложения в промышленном режимe

1. Подготовка файловой системы

Создайте папку /opt/banking-gateway (далее “/.../” вместо “/opt/banking-gateway”)

mkdir  /opt/banking-gateway

В вышесозданой папке создайте папку data/, в ней - auth/ и certs/

cd /opt/banking-gateway &&\
mkdir data && cd data &&\
mkdir auth certs && cd certs &&\
mkdir tinkoff vtb sberbank &&\
cd vtb && mkdir key ca &&\
cd /opt/banking-gateway

Если будет использоваться "АРМ Руководитель холдинга", дополнительно необходимо создать папку holding, в ней файл config.yaml

 mkdir /opt/banking-gateway/holding &&\
 echo "---" > /opt/banking-gateway/holding/config.yaml 

Это необходимо для правильного заполнения томов.

2. Генерация ключей для авторизации

С помощью ssh-keygen и openssl выполните команды

ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key &&\
openssl rsa -in jwtRS256.key -pubout -outform PEM -out jwtRS256.key.pub

Если Openssl запрашивает ввод пароля для генерации ключей оставьте поле пустым (просто нажмите "Enter")

Переименуйте сгенерированные ключи и поместите в папку /.../data/auth

mv jwtRS256.key private_key.pem &&\
mv jwtRS256.key.pub public_key.pem &&\
mv *.pem /opt/banking-gateway/data/auth/

Делаем приватный ключ доступным приложению

chmod 777 /opt/banking-gateway/data/auth/private_key.pem

3. Сертификаты для работы с Н2Н ВТБ

Сертификаты должны находиться в следующих папках:

  • /.../data/certs/vtb/ - сертификат пользователя (cert.cer)
  • /.../data/certs/vtb/ca/ - доверенные сертификаты и CRL (цепочки отзыва)
  • /.../data/certs/vtb/key/ - набор ключей для формирования закрытого контейнера.

Это поведение зависит от настройки томов (volumes) в файле docker-compose.yaml, выше приведен пример по умолчанию. Настройка файла docker-compose.yaml будет рассмотрена далее.

4. Сертификаты для работы с API Сбербанка (Сбера)

Поместите файлы, присланные сбербанком в папку /.../data/certs/sberbank:

  • fintech_archive.pfx
  • fintech_ca.pem
  • fintech_cert.pem
  • fintech_key.pem

5. Сертификаты для работы с API Тинькофф банка

Поместите сертификат cert.pfx, в папку /.../data/certs/tinkoff

6. Создание файла конфигурации

В папке /.../data создайте файл config.yaml со следующим содержимым:

listen:
  hostname: 0.0.0.0
 
baseUrl: http://bgw.example.ru                  # 1.1
 
auth:
  bcryptRounds: 2
  passwordLength: 1
  jwt:
    key: '/app/auth/private_key.pem'
 
gracefulExit: true
 
jobs:
  importStatementsVTB:
    schedule: '0 */10 * * * *'                  # 2.1
    enabled: false                               # 2.2
  importStatementsSberbank:
    schedule: '0 0 18 * * *'                    # 2.3
    enabled: false                               # 2.4
  importStatementsRaiffeisen:
    schedule: '0 0 18 * * *'                    # 2.5
    enabled: false                               # 2.6
  importStatementsTinkoff:
    schedule: '0 0 18 * * *'                    # 2.7
    enabled: false                               # 2.8
 
 
cookies:
  secret: 33deghbsgtPfTHBSRHKTPBAD3ZVKTP        # 3.1
 
xml:
  
  prettiy: true
 
sberbank:
  request:
    protocol: https
    hostname: fintech.sberbank.ru              # 4.1
    port: 9443                                  # 4.2
  oauth:
    clientId: 9999                              # 4.3
    request:
      protocol: https
      hostname: sbi.sberbank.ru                 # 4.4
      port: 9443                                # 4.5
  https:
    passphrase: kverystrongpassphrase           # 4.6
    pfx: credentials/sberbank/fintech_archive.pfx   # 4.7
    rejectUnauthorized: false
 
vtb:
  request:
    protocol: https
    hostname: gost.h2h.vtbbo.ru                 # 5.1
    port: 8443                                  # 5.2 
  https:
    cert: 53a7532e643b0b88da9ae9bafg3ilerhfnagihaezLeb # 5.3
 
  customerId: 17777777                          # 5.4
 
raiffeisen:
  request:
    protocol: https
    hostname: api.openapi.raiffeisen.ru         # 6.1
    basePath: 
  oauth:
    clientId: b32423a-b33a-499c-ba54-eeb2bc2ced # 6.2
    clientSecret: dklLsxsdGERvkrv               # 6.3
 
tinkoff:
  https:
    pfx: credentials/tinkoff/cert.pfx          # 7.1
        
  request:
    protocol: https
    hostname: business.tinkoff.ru             # 7.2
    basePath: /openapi/api                    # 7.3
    port: 443                                   # 7.4
 
licenseServer:
  protocol: https
  hostname: bgw-license.domsoft.info
  port: 443
  path: /api/check                                   # 7.4

Описание полей:

Доменная информация

  • 1.1 - имя домена, на котором будет запущен КШ

Настройка расписаний

  • 2.1 - расписание запроса выписок из ВТБ в формате CRON (подробнее https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm (opens in a new tab))
  • 2.2 - включение запросов выписок из ВТБ по расписанию - true - включено, false - выключено
  • 2.3 - расписание запроса выписок из Сбера в формате CRON
  • 2.4 - включение запросов выписок из Сбера по расписанию - true - включено, false – выключено
  • 2.5 - расписание запроса выписок из Райффайзен в формате CRON
  • 2.6 - включение запросов выписок из Райффайзен по расписанию - true - включено, false - выключено
  • 2.7 - расписание запроса выписок из Тинькофф в формате CRON
  • 2.8 - включение запросов выписок из Тинькофф по расписанию - true - включено, false - выключено

Настройка куки

  • 3.1 - секрет для шифрования куки (произвольная строка)

Настройки для подключения к API Сбера

  • 4.1 - базовый адрес для запросов к API Сбера. fintech.sberbank.ru - для промышленного контура, /iftfintech.testsbi.sberbank.ru - для тестового. Актуальный адрес необходимо проверить перед запуском программы. Для этого перейдите сюда: https://developers.sber.ru/docs/ru/sber-api/start/url (opens in a new tab)
  • 4.2 - порт подключения. Практически всегда 9443. Для проверки перейдите на https://developers.sber.ru/docs/ru/sber-api/start/url (opens in a new tab) . Порт указан после адреса через двоеточие: https://<базовый-адрес>:<порт>
  • 4.3 - идентификатор клиента (client_id) - выдается банком при заключении договора на подключение
  • 4.4 - базовый адрес для авторизации по протоколу OAuth2 в приложении СберБизнес Онлайн. Актуальный адрес необходимо проверить перед запуском программы. Для этого перейдите сюда: https://developers.sber.ru/docs/ru/sber-api/start/url (opens in a new tab)
  • 4.5 - порт для авторизации. Практически всегда 9443. Для проверки перейдите на https://developers.sber.ru/docs/ru/sber-api/start/url (opens in a new tab) . Порт указан после адреса через двоеточие: https://<базовый-адрес>:<порт> в разделе авторизация
  • 4.6 – пароль от архива сертификатов
  • 4.7 – относительный путь к архиву сертификатов внутри контейнера.

настройки для подключения к Н2Н ВТБ

  • 5.1 - базовый адрес для запросов к Н2Н ВТБ. gost.h2h.vtbbo.ru - для промышленного контура. Актуальный адрес необходимо уточнить в спецификации, предоставленной менеджером банка
  • 5.2 - порт подключения. Практически всегда 8443. Актуальный порт необходимо уточнить в спецификации, предоставленной менеджером банка
  • 5.3 - SHA-1 отпечаток сертификата, зарегистрированного при подключении к Н2Н ВТБ.
  • 5.4 - идентификатор клиента (customerId) - выдается банком при заключении договора на подключение (!ОБРАТИТЕ ВНИМАНИЕ поле customerId ВТБ банка привязано к пользователю-вадельцу сертификата, а не к организации. Соответственно при изменении владельца сертификата для подключения client_id также будет изменен.)

Настройки для подключения к API Raiffeissen

  • 6.1 - базовый адрес для запросов к API Raiffeissen. api.openapi.raiffeisen.ru - для промышленного контура. Актуальный адрес необходимо проверить перед запуском программы. Для этого перейдите сюда: https://openapi.raif.ru/catalog/api/3ab489e3-1b4c-462a-b489-e31b4c562a8b (opens in a new tab)
  • 6.2 - идентификатор клиента (clientId) - выдается банком при заключении договора на подключение
  • 6.3 - секрет клиента (clientSecret) - придумываем clientSecret и передаем хеш от него Райффайзен. В свою очередь, указывая clientSecret в конфигурации приложения. Это делается однажды при начальной конфигурации приложения.

Настройки подключения Тинькофф банка

  • 7.1 - относительный путь к файлу с сертификатом Тинькофф.
  • 7.2 – хост для запросов к Тинькофф API
  • 7.3 – базовый путь для запросов к Тинькофф API
  • 7.4 – порт для запросов к Тинькофф API (443)

7. Проверка сертификатов

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

wget https://bgw.domsoft.info/assets/utils/cert-plug.zip && \
unzip cert-plug.zip -d . && \
rm cert-plug.zip && \
cd cert-plug && \
chmod +x install-certs.sh && \
./install-certs.sh && \
cd .. && \
rm -rf cert-plug

8. Авторизация в реестре ООО "Домсофт"

Выполните авторизацию в реестре ООО "Домсофт" Для этого выполните:

docker login cr.domsoft.info

Затем введите логин, полученный от ООО "Домсофт"

И пароль.

Файл с логином и паролем - registry-credentials.txt

9. Настройка файла docker-compose.yml

Файл “docker-compose.yaml” поставляется вместе с КШ. При необходимости его можно настраивать и редактировать. Поместите его в директорию /opt/banking-gateway Обязательно внесите лицензионный ключ криптопро. Пример файла приведен в таблице ниже:

version: '3.5'
networks:
  companyName:
 
services:
 
  bg:
    restart: always
    image: cr.domsoft.info/tf/banking-gateway:0.5.1
    environment:
      MONGO_PORT: 27017
      MONGO_HOST: mongo
      NODE_ENV: production
      NODE_CONFIG: config.yaml
      CA_PATH: /tmp/ca
      KEY_PATH: /tmp/key
      CERT_PATH: /tmp/cert.cer
      LICENSE_KEY: 4040B-33010-01K7E-4YXE7-VWM0Z          # 1
    volumes:
      - "./data/config.yaml:/app/config.yaml"             # 2
      - "./data/auth:/app/auth"                           # 3
      - "./data/certs/sberbank:/app/credentials/sberbank" # 4
      - "./data/certs/vtb/ca:/tmp/ca"                     # 5
      - "./data/certs/vtb/key:/tmp/key"                   # 6
      - "./data/certs/vtb/cert.cer:/tmp/cert.cer"         # 7
      - "./data/certs/tinkoff:/app/credentials/tinkoff"    # 8
    expose:
      - 5500
    ports:
      - 5500:5500
    networks:
      companyName:
 
  bg-front:
    restart: always
    image: cr.domsoft.info/tf/banking-gateway-client:0.5.1
    expose:
      - 5800
    ports:
      - 5800:5800
    networks:
      companyName:
 
  mongo:
    restart: always
    image: mongo:4.2.9
    volumes:
      - "./data/db:/data/db"
    networks:
      companyName:	

Описание полей:

  • 1 - лицензионный ключ для криптопро (купить лицензию криптопро можно на официальном сайте https://www.cryptopro.ru/buy (opens in a new tab))
  • 2 - относительный путь к файлу “config.yaml” (п.5. текущего раздела. Путь указывается относительно файла docker-compose.yaml)
  • 3 - относительный путь к папке с сертификатами для авторизации (п.1. текущего раздела)
  • 4 - относительный путь к папке с сертификатами Сбера (п.4. текущего раздела)
  • 5, 6, 7 - относительные пути к папкам с сертификатами ВТБ (п.3. текущего раздела)
  • 8 - относительный путь к папке с сертификатами Сбера (п.4. текущего раздела)

Затем в корне проекта (/.../) необходимо выполнить команду:

docker compose up -d

По умолчанию создается пользователь со следующими данными:

  • Логин - admin
  • Пароль - запросите у ООО ДОМСОФТ

Затем настройте перенаправление на localhost:5800 из Nginx или Httpd c адреса, указанного в “config.yaml”,1.1

После этого приложение будет запущено и доступно по адресу, указанному в “config.yaml”,1.1

После того как вы войдете в приложение, активируйте его используя данные, полученные от ООО "Домсофт" Ключ - это содержимое файла license-key.txt