Integrácia#

Kapitola opisuje procesy pre rôzne úlohy a je zameraná na všetky skupiny používateľov.

REST-API#

Primárnym rozhraním NetHSM je moderné REST-API, ktoré zaručuje najlepší výkon a funkčnosť. Špecifikácia API je k dispozícii vo formáte OpenAPI, pričom ju možno skontrolovať a otestovať v prehliadači API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .

PKCS#11#

NetHSM podporuje štandard PKCS#11. Potrebný ovládač je k dispozícii v úložisku ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Úložisko obsahuje zdrojový kód a knižnice pre rôzne operačné systémy. V príručke PKCS#11 je podrobne opísané použitie.

Vývoj a testovanie#

Verejná demo inštancia NetHSM je k dispozícii na adrese nethsmdemo.nitrokey.com. Obnovuje sa každých osem hodín (6:00, 14:00, 22:00 SEČ). Používateľ „admin“, heslo „adminadmin“, heslo na odomknutie „unlockunlock“.

Prípadne môžete NetHSM spustiť ako kontajner Docker lokálne.

Kontajner možno vykonať takto.

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

Spustí sa NetHSM ako unixový proces v kontajneri a sprístupní sa rozhranie REST API na porte 8443 prostredníctvom protokolu HTTPS.

Okrem toho, že NetHSM beží ako unixový proces, môže byť spustený ako unikernel podporovaný KVM.

Kontajner možno vykonať takto.

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

Tým sa NetHSM spustí ako unikernel vo virtuálnom stroji KVM. Kontajner sprístupní rozhranie REST API prostredníctvom protokolu HTTPS na rozhraní tap200 s IP adresou 192.168.1.100 a portom 8443.

Dôležité

Kontajner používa certifikát TLS s vlastným podpisom. Uistite sa, že na vytvorenie spojenia používate správne nastavenia pripojenia. Viac informácií nájdete v kapitole Úvod do NetHSM.

Integrácia do vlastnej aplikácie#

Na integráciu NetHSM do vlastných aplikácií sú k dispozícii klientske knižnice pre takmer všetky programovacie jazyky. Tu sú knižnice pre Python a Rust, ako aj tento Rust crate tretej strany. Pre všetky ostatné programovacie jazyky odporúčame použiť OpenAPI Generator.

Zoznam všetkých dostupných jazykov môžete získať takto.

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

Klienta NetHSM je možné vygenerovať pre váš programovací jazyk nasledovne.

$ 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

Vygenerovaný klientsky kód, v tomto príklade JavaScript, bude vytvorený v adresári ./out/. Tento adresár obsahuje aj potrebnú dokumentáciu, ako ho používať.

Dôležité

Ak sa Podman používa s vynútením SELinuxu, môže byť potrebné označenie pripojenia zväzku. Režim SELinuxu možno vyžiadať pomocou sestatus |grep "Current mode". Ak je režim nastavený na enforcing, je potrebná zmena kontextu. V takom prípade sa musí pripojenie zväzku dodatočne označiť pomocou :z, čím vznikne -v "${PWD}/out:/out:z".

Rozhranie príkazového riadka#

Používatelia môžu spravovať a používať NetHSM pomocou špecializovaného rozhrania príkazového riadka (CLI). Nitrokey ponúka nitropy, ktorý je distribuovaný v jazyku Python na báze pynitrokey. S nethsm existuje alternatívna aplikácia tretej strany, ktorá je vyvinutá v krabici Rust nethsm-cli.