Integráció#

A fejezet a különböző feladatokhoz szükséges folyamatokat írja le, és minden felhasználói csoportot megcéloz.

REST-API#

A NetHSM elsődleges interfésze egy modern REST-API, amely garantálja a legjobb teljesítményt és funkcionalitást. Az API specifikáció elérhető a OpenAPI formátumban, és megtekinthető és tesztelhető a API böngészőben.

PKCS#11#

A NetHSM támogatja a PKCS#11 szabványt. A szükséges illesztőprogram elérhető a repositoryból. Az adattár tartalmazza a forráskódot és a könyvtárakat, különböző operációs rendszerekhez. A PKCS#11 útmutató részletesen leírja a használatot.

Fejlesztés és tesztelés#

Egy nyilvános NetHSM demópéldány elérhető a nethsmdemo.nitrokey.com címen. Nyolc óránként (CET 6:00, 14:00, 22:00) újraindul. Felhasználó „admin”, jelszó „adminadmin”, feloldási jelszó „unlockunlock”.

Alternatívaként a NetHSM-et futtathatja a Docker konténerként is helyben.

A konténer a következőképpen hajtható végre.

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

Ez a NetHSM-et Unix-folyamatként futtatja a konténerben, és a REST API-t a 8443-as porton keresztül a HTTPS protokollon keresztül teszi elérhetővé.

A NetHSM Unix-folyamatként való futtatása mellett a KVM által támogatott unikernelként is futtatható.

A konténer a következőképpen hajtható végre.

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

Ez a NetHSM-et unikernelként futtatja egy KVM virtuális gépen belül. A konténer a REST API-t a HTTPS protokollon keresztül a „tap200” interfészen teszi közzé a „192.168.1.100” IP-címmel és a „8443” porttal.

Fontos

A tároló saját aláírású TLS-tanúsítványt használ. Győződjön meg róla, hogy a kapcsolat létrehozásához a megfelelő kapcsolatbeállításokat használja. További információkért olvassa el a NetHSM bevezetés fejezetet.

Egyedi alkalmazásba való integráció#

A NetHSM saját egyedi alkalmazásokba történő integrálásához szinte minden programozási nyelvhez rendelkezésre állnak ügyfélkönyvtárak. Itt vannak könyvtárak a Python és Rust, valamint a ez a harmadik féltől származó Rust crate. Minden más programozási nyelvhez a OpenAPI Generator használatát javasoljuk.

A rendelkezésre álló nyelvek listája a következőképpen hívható le.

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

A NetHSM kliens a következőképpen generálható a programozási nyelvhez.

$ 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

A generált ügyfélkód, ebben a példában a JavaScript, a ./out/ könyvtárban lesz létrehozva. Ez a mappa tartalmazza a használatához szükséges dokumentációt is.

Fontos

Ha a Podman a SELinux érvényesítésével együtt használatos, akkor szükség lehet a kötetcsatolás címkézésére. A SELinux módját a sestatus |grep "Current mode" címmel lehet lekérdezni. Ha a mód a enforcing, akkor a kontextus módosítása szükséges. Ebben az esetben a kötetcsatlakoztatást a :z utólagos rögzítéssel kell elvégezni, ami a -v "${PWD}/out:/out:z" eredményezi.