Интеграция#

Главата описва процеси за различни задачи и е насочена към всички групи потребители.

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. Той ще се нулира на всеки осем часа (6:00, 14:00, 22:00 ч. централноевропейско време). Потребител „admin“, парола „adminadmin“, парола за отключване „unlockunlock“.

Алтернативно можете да стартирате NetHSM като контейнер Docker локално.

Контейнерът може да бъде изпълнен по следния начин.

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

Това ще стартира NetHSM като Unix процес в контейнера и ще разкрие REST API на порт 8443 чрез протокола HTTPS.

Освен като процес на Unix NetHSM може да се стартира и като ядро, поддържано от 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.

Important

Контейнерът използва самостоятелно подписан сертификат 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/. Тази папка съдържа и необходимата документация как да я използвате.

Important

Ако 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.