Integrácia#

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

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

Tým sa poskytne rozhranie REST API na porte 8443 prostredníctvom protokolu HTTPS.

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".

REST-API#

Špecifikácia API NetHSM je k dispozícii vo formáte OpenAPI a možno ju skontrolovať a otestovať v prehliadači API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .