Integracija#

Poglavje opisuje postopke za različna opravila in je namenjeno vsem skupinam uporabnikov.

REST-API#

Primarni vmesnik NetHSM je sodoben vmesnik REST-API, ki zagotavlja najboljšo zmogljivost in funkcionalnost. Specifikacija API je na voljo v formatu OpenAPI, pregledati in preizkusiti pa jo je mogoče v brskalniku API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .

PKCS#11#

NetHSM podpira standard PKCS#11. Potrebni gonilnik je na voljo v skladišču ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Repozitorij vsebuje izvorno kodo in knjižnice za različne operacijske sisteme. V vodniku PKCS#11 je podrobno opisana uporaba.

Razvoj in testiranje#

Javni demo primerek NetHSM je na voljo na naslovu nethsmdemo.nitrokey.com. Ponastavljena bo vsakih osem ur (6:00, 14:00, 22:00 po srednjeevropskem času). Uporabnik „admin“, geslo „adminadmin“, geslo za odklepanje „unlockunlock“.

NetHSM lahko zaženete tudi kot vsebnik Docker lokalno.

Posodo lahko izvedete na naslednji način.

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

To bo zagnalo NetHSM kot proces Unix znotraj vsebnika in izpostavilo API REST na vratih 8443 prek protokola HTTPS.

Poleg tega, da se NetHSM zažene kot proces Unix, se lahko zažene tudi kot unikernel, ki ga podpira KVM.

Posodo lahko izvedete na naslednji način.

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

To bo zagnalo NetHSM kot unikernel znotraj virtualnega stroja KVM. Kontejner bo izpostavil API REST prek protokola HTTPS na vmesniku tap200 z naslovom IP 192.168.1.100 in vratom 8443.

Pomembno

Posoda uporablja samopodpisano potrdilo TLS. Poskrbite, da boste za vzpostavitev povezave uporabili pravilne nastavitve povezave. Če želite izvedeti več, si oglejte poglavje Uvod v NetHSM.

Integracija v aplikacijo po meri#

Za vključitev sistema NetHSM v lastne aplikacije po meri so na voljo odjemalske knjižnice za skoraj vse programske jezike. Tukaj so knjižnice za Python in Rust ter ta tretja stran Rust crate. Za vse druge programske jezike priporočamo uporabo OpenAPI Generator.

Seznam vseh razpoložljivih jezikov lahko dobite na naslednji način.

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

Odjemalec NetHSM se lahko ustvari za vaš programski jezik na naslednji način.

$ 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

Ustvarjena odjemalčeva koda, v tem primeru JavaScript, bo ustvarjena v imeniku ./out/. Ta mapa vsebuje tudi potrebno dokumentacijo, kako jo uporabljati.

Pomembno

Če se Podman uporablja z uveljavljanjem SELinuxa, bo morda potrebna oznaka za priklop zvezka. Način SELinuxa lahko zahtevate s sestatus |grep "Current mode". Če je način nastavljen na enforcing, je potrebna sprememba konteksta. V tem primeru je treba priklop zvezka naknadno označiti z :z, kar povzroči -v "${PWD}/out:/out:z".

Vmesnik ukazne vrstice#

Uporabniki lahko upravljajo in uporabljajo NetHSM z namenskim vmesnikom ukazne vrstice (CLI). Nitrokey ponuja nitropy, ki se distribuira v programskem okolju pynitrokey, ki temelji na Pythonu. Z nethsm obstaja alternativna aplikacija tretje osebe, ki je razvita v gruči Rust nethsm-cli.