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é ich používanie.
Dôležité
Tento ovládač je ešte stále ranou implementáciou Proof of Concept, ktorá implementuje len funkcie potrebné na prevádzku serverov TLS.
Vývoj a testovanie#
Verejná demo inštancia NetHSM je k dispozícii na adrese nethsmdemo.nitrokey.com.
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
$ podman run --rm -ti -p8443:8443 docker.io/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 Rust a Python. 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
$ podman 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
$ 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
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.