Простой пример демонстрации интеграции NCALayer для подписания документов с использованием Spring Boot бэкенда и ванильного JavaScript фронтенда при использовании тестовых сертификатов выпущенных при помощи knca-signer.
- Управление документами: Создание и управление XML документами
- Интеграция с NCALayer: Подписание документов с использованием казахстанских цифровых сертификатов
- Web-интерфейс: Простой пользовательский интерфейс для создания и подписания документов
- REST API: Полноценное API для программного взаимодействия
- Java 17+: Для запуска Spring Boot приложения
- NCALayer: Казахстанское приложение для цифровой подписи
- Docker: Для запуска knca-signer и генерации тестовых сертификатов
- Maven: Для сборки проекта
Установите права доступа для директорий certs и lib (необходимо для корректной работы Docker-контейнера):
sudo chown -R 100:1000 ./certs ./libЗапустите knca-signer через Docker Compose:
docker-compose up -dСервис будет доступен на порту 8081.
- Откройте браузер и перейдите на
http://localhost:8081 - В интерфейсе knca-signer автоматически сгенерируются тестовые сертификаты
- Скачайте файл CA (PEM) и пользовательский сертификат (P12) на ваш компьютер
- Эти сертификаты будут использоваться в тестовом сценарии подписания
# Соберите и запустите
mvn spring-boot:runПриложение запустится на http://localhost:8080
- Скачайте NCALayer с официального сайта
- Установите и запустите приложение
- Убедитесь, что оно работает на
wss://127.0.0.1:13579/ - Импортируйте скачанный ранее сертификат P12 (при необходимости)
Откройте http://localhost:8080 в браузере.
- Создавайте новые документы
- Подписывайте их с использованием NCALayer
GET /api/documents- Получить список всех документовPOST /api/documents- Создать новый документPUT /api/documents/{id}/sign- Сохранить подпись документа на сервере
- Создание документа: Пользователи могут создавать XML документы через веб-интерфейс
- Подключение к NCALayer: Фронтенд подключается к NCALayer через WebSocket
- Процесс подписания:
- Содержимое документа конвертируется в base64
- NCALayer открывает диалог выбора сертификата
- Пользователь выбирает сертификат и вводит пароль (по умолчанию
123456) - Документ подписывается с использованием алгоритмов GOST 34.10-2015
src/
├── main/
│ ├── java/knca/signer/example/
│ │ ├── Document.java # Модель документа
│ │ ├── DocumentService.java # Бизнес-логика управления документами
│ │ ├── DocumentController.java # REST контроллер
│ │ └── KncaSignerExampleApplication.java # Основной класс приложения
│ └── resources/static/
│ ├── index.html # Главная страница
│ └── app.js # Логика фронтенда
mvn clean package
java -jar target/knca-signer-example-1.0.0.jar- Проверьте, что NCALayer запущен и доступен на порту 13579
- Проверьте консоль браузера на ошибки WebSocket подключения
- Убедитесь в отсутствии блокировки firewall для локальных подключений
- Подтвердите действительность и сроки действия сертификата
- Проверьте правильность ввода пароля (для тестового сертификата:
123456) - Убедитесь, что сертификат корректно импортирован в NCALayer
- Выполните команду
sudo chown -R 100:1000 ./certs ./libперед запуском - Проверьте доступность портов 8080 и 8081
- Убедитесь, что Docker установлен и запущен
- Проверьте установку Java 17+:
java -version - Убедитесь, что порт 8080 свободен
- Проверьте логи приложения на наличие ошибок
Этот пример предоставляется под лицензией MIT. Приложение NCALayer и связанные криптографические библиотеки имеют свои собственные условия лицензирования.
Важно: JAR файлы Kalkan не могут быть добавлены в репозиторий из-за лицензионных ограничений. Пользователь должен использовать собственные JAR файлы для генерации тестовых сертификатов.

