Integrace#

Kapitola popisuje procesy pro různé úkoly a je zaměřena na všechny skupiny uživatelů.

REST-API#

Primárním rozhraním NetHSM je moderní REST-API, které zaručuje nejlepší výkon a funkčnost. Specifikace API je k dispozici ve formátu OpenAPI, a lze ji zkontrolovat a otestovat v prohlížeči API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .

PKCS#11#

NetHSM podporuje standard PKCS#11. Potřebný ovladač je k dispozici v úložišti ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Úložiště obsahuje zdrojové kódy a knihovny pro různé operační systémy. Podrobně je použití popsáno v příručce PKCS#11.

Vývoj a testování#

Veřejná ukázková instance NetHSM je k dispozici na adrese nethsmdemo.nitrokey.com. Bude resetována každých osm hodin (6:00, 14:00, 22:00 SEČ). Uživatel „admin“, heslo „adminadmin“, heslo pro odemknutí „unlockunlock“.

Případně můžete NetHSM spustit jako kontejner Docker lokálně.

Kontejner lze spustit následujícím způsobem.

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

Tím se NetHSM spustí jako unixový proces uvnitř kontejneru a zpřístupní rozhraní REST API na portu 8443 prostřednictvím protokolu HTTPS.

Kromě toho, že NetHSM běží jako proces Unixu, může být spuštěn jako unikernel podporovaný KVM.

Kontejner lze spustit následujícím způsobem.

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

Tím se NetHSM spustí jako unikernel uvnitř virtuálního počítače KVM. Kontejner zpřístupní rozhraní REST API prostřednictvím protokolu HTTPS na rozhraní tap200 s IP adresou 192.168.1.100 a portem 8443.

Důležité

Kontejner používá certifikát TLS s vlastním podpisem. Ujistěte se, že pro navázání spojení používáte správné nastavení připojení. Více informací naleznete v kapitole Úvod do NetHSM.

Integrace do vlastní aplikace#

Pro integraci NetHSM do vlastních aplikací jsou k dispozici klientské knihovny pro téměř všechny programovací jazyky. Zde jsou knihovny pro Python a Rust a také tento Rust crate třetí strany. Pro všechny ostatní programovací jazyky doporučujeme použít OpenAPI Generator.

Seznam všech dostupných jazyků lze získat takto.

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

Klienta NetHSM lze pro váš programovací jazyk vygenerovat následujícím způsobem.

$ 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ý klientský kód, v tomto případě JavaScript, bude vytvořen v adresáři ./out/. Tento adresář obsahuje také potřebnou dokumentaci, jak jej používat.

Důležité

Pokud je Podman používán s vynucením SELinuxu, může být vyžadováno označení připojení svazku. Režim SELinuxu lze vyžádat pomocí sestatus |grep "Current mode". Pokud je režim nastaven na enforcing, je nutná změna kontextu. V takovém případě musí být připojení svazku dodatečně označeno pomocí :z, čímž vznikne -v "${PWD}/out:/out:z".

Rozhraní příkazového řádku#

Uživatelé mohou spravovat a používat NetHSM pomocí vyhrazeného rozhraní příkazového řádku (CLI). Nitrokey nabízí nitropy, který je distribuován v jazyce Python založeném na pynitrokey. S nethsm existuje alternativní aplikace třetí strany, která je vyvinuta v krabici Rust nethsm-cli.