После реальной установки на dev-ВМ выяснилось:
- Минимальный набор rpm-пакетов для работы PKCS#11 — 8 штук, в т.ч.
lsb-cprocsp-capilite-64 (libcapi20.so.4) и lsb-cprocsp-kc1-64
(CSP уровня КС1). Без kc1 Initialize() возвращает CKR_FUNCTION_FAILED.
- КриптоПро не пишет /etc/ld.so.conf.d, поэтому Go-клиент cryptocli
не находит libcppkcs11.so. Решение — LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64
в окружении bj-server.
- Демо-лицензия на 3 месяца встроена в дистрибутив — отдельная
активация не требуется до истечения.
deploy/systemd/bj-server.service:
- добавлена Environment=LD_LIBRARY_PATH=/opt/cprocsp/lib/amd64
с пояснением в комментарии
internal/lkgateway/web/templates/admin_help_cryptopro.html:
- секция «Установка КриптоПро CSP на РЕД ОС» полностью переписана:
- две команды: через UI (рекомендуется) и через rpm вручную
- полный список 8 нужных пакетов с пояснением каждого
- предупреждение про LD_LIBRARY_PATH и команда для запуска из shell
- информация про демо-лицензию (94 дня встроены)
internal/lkgateway/setup.go:
- if-else цепочка распаковки заменена на switch (gocritic lint)
Проверено: после установки kc1 веб-кнопка «Проверить подключение СКЗИ»
показывает «Доступно токенов: 1. Криптография готова к работе.
(PKCS#11 v2.11, cryptopro.ru). Токены: CryptoPro Token (CPPKCS 3)».
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Под выбранный объём 100-1000 сделок/день микросервисная архитектура с
5 отдельными процессами избыточна. Объединяем lk-gateway, m2m-core,
nsd-adapter, notify в один Go-бинарник bj-server. lk-emulator остаётся
отдельным бинарником как QA-инструмент (имитация ЛК ESIA Finance).
cmd/bj-server/main.go:
- Поднимает lkgateway.NewServer (HTTP :8080, REST API + admin UI)
- Фоновый poller NSD ИШ (если задан BJ_NSD_PROFILE)
- Заглушка notify worker (M3-M4: e-mail / Yandex Messenger / WS-push)
- Graceful shutdown через signal.NotifyContext
cmd/lk-gateway/, cmd/m2m-core/, cmd/nsd-adapter/, cmd/notify/ — удалены.
deploy/systemd/:
- bj-server.service — systemd unit для основного сервиса (один файл, простой деплой)
- bj-emulator.service — systemd unit для эмулятора
- README.md с инструкцией по установке (useradd bj, /opt/bj, daemon-reload)
Makefile:
- build теперь собирает только bj-server и lk-emulator
- бывшие пять бинарей удалены
Размер:
- bj-server: 19.5 МБ (включает lk-gateway + m2m-core + nsd-adapter + notify)
- lk-emulator: 12.7 МБ
- общий размер артефактов уменьшился c ~50 МБ до 32 МБ
Внутренние пакеты internal/<...> не изменились — разделение сохраняется
на уровне Go-пакетов, что облегчает возврат к микросервисам если объём
вырастет до 1000+ сделок/день.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>