Запуск приложения в промышленном режим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