Integration#
Kapitlet beskriver processer för olika uppgifter och riktar sig till alla användargrupper.
PKCS#11#
NetHSM stöder PKCS#11-standarden. Den nödvändiga drivrutinen finns tillgänglig i repository. Förrådet innehåller källkod och bibliotek för olika operativsystem.
I PKCS#11 guide beskrivs hur du använder dem i detalj.
Viktigt
Den här drivrutinen är fortfarande en tidig Proof of Concept-implementation som endast implementerar de funktioner som är nödvändiga för att driva TLS-servrar.
Utveckling och testning#
En offentlig NetHSM-demoinstans finns på nethsmdemo.nitrokey.com.
Alternativt kan du köra NetHSM som en Docker-behållare lokalt.
Behållaren kan utföras på följande sätt.
$ sudo docker run --rm -ti -p8443:8443 nitrokey/nethsm:testing
$ podman run --rm -ti -p8443:8443 docker.io/nitrokey/nethsm:testing
Detta kommer att tillhandahålla REST API på port 8443 via HTTPS-protokollet.
Viktigt
Behållaren använder ett självsignerat TLS-certifikat. Se till att använda rätt inställningar för anslutning för att upprätta en anslutning. Se kapitel NetHSM-introduktion för att få mer information.
Integrering i en anpassad applikation#
För att integrera NetHSM i egna anpassade applikationer finns klientbibliotek tillgängliga för nästan alla programmeringsspråk. Här finns bibliotek för Rust och Python. För alla andra programmeringsspråk rekommenderar vi att du använder OpenAPI Generator.
Listan över alla tillgängliga språk kan hämtas på följande sätt.
$ 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 genereras för ditt programmeringsspråk på följande sätt.
$ 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 genererade klientkoden, i det här exemplet JavaScript, skapas i katalogen ./out/
. Denna mapp innehåller också den nödvändiga dokumentationen om hur den ska användas.
Viktigt
Om Podman används för att upprätthålla SELinux kan det krävas en märkning av volymmonteringen. Läget för SELinux kan begäras med sestatus |grep "Current mode"
. Om läget är inställt på enforcing
krävs en ändring av kontexten. I detta fall måste volymmonteringen efterfixeras med :z
, vilket resulterar i -v "${PWD}/out:/out:z"
.
REST-API#
NetHSM’s API-specifikation finns tillgänglig i OpenAPI-format, och kan inspekteras och testas i API-browser.