Интеграция#

Глава описывает процессы для различных задач и ориентирована на все группы пользователей.

REST-API#

Основной интерфейс NetHSM - это современный REST-API, гарантирующий наилучшую производительность и функциональность. Спецификация API доступна в формате OpenAPI, и может быть проверена и протестирована в браузере API.

PKCS#11#

NetHSM поддерживает стандарт PKCS#11. Необходимый драйвер доступен из репозитория ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Репозиторий содержит исходный код и библиотеки для различных операционных систем. Руководство по PKCS#11 подробно описывает его использование.

Разработка и тестирование#

Публичный демонстрационный экземпляр NetHSM доступен по адресу nethsmdemo.nitrokey.com. Он будет перезагружаться каждые восемь часов (CET 6:00, 14:00, 22:00). Пользователь «admin», пароль «adminadmin», пароль разблокировки «unlockunlock».

В качестве альтернативы можно запустить NetHSM как контейнер Docker ` <https://hub.docker.com/r/nitrokey/nethsm>`_ локально.

Контейнер может быть выполнен следующим образом.

$ sudo docker run --rm -ti -p8443:8443 nitrokey/nethsm:testing

Это запустит NetHSM как Unix-процесс внутри контейнера и откроет REST API на порту 8443 по протоколу HTTPS.

Кроме запуска NetHSM как Unix-процесса, его можно запустить как юникс-ядро, поддерживаемое KVM.

Контейнер может быть выполнен следующим образом.

$ docker run -ti --rm -p 8443:8443 --device /dev/net/tun --device /dev/kvm --cap-add=NET_ADMIN nitrokey/nethsm:testing

Это позволит запустить NetHSM как юникерн внутри виртуальной машины KVM. Контейнер будет открывать REST API по протоколу HTTPS на интерфейсе tap200 с IP-адресом 192.168.1.100 и портом 8443.

Важно

Контейнер использует самоподписанный сертификат TLS. Убедитесь, что для установления соединения используются правильные настройки подключения. Для получения дополнительной информации обратитесь к главе Введение в NetHSM.

Интеграция в пользовательское приложение#

Для интеграции NetHSM в собственные приложения доступны клиентские библиотеки практически для всех языков программирования. Здесь представлены библиотеки для Python и Rust, а также этот сторонний Rust crate. Для всех остальных языков программирования мы рекомендуем использовать OpenAPI Generator.

Список всех доступных языков можно получить следующим образом.

$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable

Клиент NetHSM может быть создан для вашего языка программирования следующим образом.

$ docker run --rm -ti -v "${PWD}/out:/out" openapitools/openapi-generator-cli generate -i=https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml -o out -g javascript

Сгенерированный клиентский код, в данном примере JavaScript, будет создан в каталоге ./out/. Эта папка также содержит необходимую документацию по использованию.

Важно

Если Podman используется с принудительным SELinux, может потребоваться маркировка монтирования тома. Режим SELinux можно запросить с помощью sestatus |grep "Current mode". Если режим установлен на enforcing, требуется изменение контекста. В этом случае монтирование тома должно быть постфиксировано с помощью :z, что приведет к -v "${PWD}/out:/out:z".

Интерфейс командной строки#

Пользователи могут администрировать и использовать NetHSM с помощью специального интерфейса командной строки (CLI). Nitrokey предлагает nitropy, который распространяется на базе Python pynitrokey. С nethsm существует альтернативное стороннее приложение, которое разработано в Rust crate nethsm-cli.