Интеграция#
Глава описывает процессы для различных задач и ориентирована на все группы пользователей.
PKCS#11#
NetHSM поддерживает стандарт PKCS#11. Необходимый драйвер доступен из репозитория ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Репозиторий содержит исходный код и библиотеки для различных операционных систем.
В руководстве PKCS#11 подробно описано, как их использовать.
Важно
Этот драйвер все еще является ранней реализацией Proof of Concept, которая реализует только функции, необходимые для работы TLS-серверов.
Разработка и тестирование#
Публичный демонстрационный экземпляр NetHSM доступен по адресу nethsmdemo.nitrokey.com.
В качестве альтернативы можно запустить NetHSM как контейнер Docker ` <https://hub.docker.com/r/nitrokey/nethsm>`_ локально.
Контейнер может быть выполнен следующим образом.
$ sudo docker run --rm -ti -p8443:8443 nitrokey/nethsm:testing
$ podman run --rm -ti -p8443:8443 nitrokey/nethsm:testing
Это обеспечит REST API на порту 8443 по протоколу HTTPS.
Важно
Контейнер использует самоподписанный сертификат TLS. Убедитесь, что для установления соединения используются правильные настройки подключения. Для получения дополнительной информации обратитесь к главе Введение в NetHSM.
Интеграция в пользовательское приложение#
Для интеграции NetHSM в собственные приложения клиентские библиотеки доступны практически для всех языков программирования. Поэтому мы рекомендуем использовать OpenAPI Generator.
Список всех доступных языков можно получить следующим образом.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman 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
$ podman 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"
.
REST-API#
Спецификация NetHSM’API доступна в формате OpenAPI, и может быть проверена и протестирована в API-браузере.