Задача
Разработать функционал для подписания произвольных документов цифровой электронной подписью (ЭЦП) с помощью Node.js. Решение должно быть протестировано в двух сценариях:
- Локальный компьютер (Windows 10): на машине установлено ПО для работы с криптопровайдерами (CryptoPro CSP или аналоги).
- Удаленный сервер: сервер работает под управлением ОС Linux (соответствующий стек: Nginx/SSL) и установленным криптопровайдером под управлением.
Основные требования
- Подписание документа (текстовый или PDF) с использованием сертификата ЭЦП.
- Проверка подписи после завершения процесса.
- Возможность интеграции в микросервисную архитектуру (вызов через API/REST).
- Оценить юридическую корректность для России (соответствие законодательству об ЭЦП).
- Документирование ограничений и условий каждого из сценариев (Win/Linux).
Дополнительные уточнения
Технологический стек: Node.js (Express/Fastify), KSP, crypto, support CryptoPro SDK.
Риски: возможные проблемы совместимости криптопровайдера на Linux (необходима эмуляция через cryptcp или аналоги).
Вывод: желательно предоставить поэтапный ROADMAP внедрения, включая сложные моменты для серверной части.