Integration#
Kapitlet beskriver processer for forskellige opgaver og henvender sig til alle brugergrupper.
PKCS#11#
NetHSM understøtter PKCS#11-standarden. Den nødvendige driver findes i repository. Dette arkiv indeholder kildekoden og bibliotekerne til forskellige operativsystemer.
PKCS#11 guide beskriver, hvordan man bruger dem i detaljer.
Vigtigt
Denne driver er stadig en tidlig Proof of Concept-implementering, som kun implementerer de funktioner, der er nødvendige for at drive TLS-servere.
Udvikling og afprøvning#
En offentlig NetHSM-demoinstans er tilgængelig på nethsmdemo.nitrokey.com.
Alternativt kan du køre NetHSM som en Docker-container lokalt.
Beholderen kan udføres på følgende måde.
$ sudo docker run --rm -ti -p8443:8443 nitrokey/nethsm:testing
$ podman run --rm -ti -p8443:8443 docker.io/nitrokey/nethsm:testing
Dette vil give adgang til REST API’et på port 8443 via HTTPS-protokollen.
Vigtigt
Beholderen bruger et selvsigneret TLS-certifikat. Sørg for at bruge de korrekte forbindelsesindstillinger for at oprette en forbindelse. Se kapitel NetHSM-introduktion for at få mere at vide.
Integration til brugerdefineret applikation#
For at integrere NetHSM i egne applikationer er der klientbiblioteker til rådighed for næsten alle programmeringssprog. Her er biblioteker til Rust og Python. Til alle andre programmeringssprog anbefaler vi at bruge OpenAPI Generator.
Listen over alle tilgængelige sprog kan hentes på følgende måde.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
NetHSM-klienten kan genereres til dit programmeringssprog på følgende måde.
$ 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
Den genererede klientkode, i dette eksempel JavaScript, vil blive oprettet i mappen ./out/
. Denne mappe indeholder også den nødvendige dokumentation for, hvordan den skal bruges.
Vigtigt
Hvis Podman bruges med håndhævelse af SELinux, kan det være nødvendigt at mærke volumenmonteringen. Tilstanden for SELinux kan anmodes med sestatus |grep "Current mode"
. Hvis tilstanden er indstillet til enforcing
, er en ændring af konteksten nødvendig. I dette tilfælde skal volumenmonteringen efterfixeres med :z
, hvilket resulterer i -v "${PWD}/out:/out:z"
.
REST-API#
NetHSM’s API-specifikation er tilgængelig i OpenAPI-format, og kan inspiceres og testes i API-browseren.