Integration#
Das Kapitel beschreibt Prozesse für verschiedene Aufgaben und richtet sich an alle Benutzergruppen.
PKCS#11#
Der NetHSM unterstützt den PKCS#11-Standard. Der benötigte Treiber ist im Repository ` <https://github.com/Nitrokey/nethsm-pkcs11>` __ verfügbar. Das Repository enthält den Quellcode und die Bibliotheken für verschiedene Betriebssysteme.
Der PKCS#11-Leitfaden beschreibt ausführlich, wie sie zu verwenden sind.
Wichtig
Bei diesem Treiber handelt es sich noch um eine frühe Proof-of-Concept-Implementierung, die nur die Funktionen implementiert, die für den Betrieb von TLS-Servern erforderlich sind.
Entwicklung und Prüfung#
Eine öffentliche NetHSM-Demoinstanz ist unter nethsmdemo.nitrokey.com verfügbar.
Alternativ können Sie den NetHSM auch als Docker-Container lokal ausführen. Der NetHSM-Container erfordert eine verschachtelte Virtualisierung für eine starke Trennung mit anderen Containern. Um einen NetHSM-Container zu starten, benötigen Sie also einen Linux-Host, auf dem /dev/kvm verfügbar ist. Führen Sie diesen Befehl aus:
$ sudo docker run --rm -ti --device=/dev/net/tun:/dev/net/tun --cap-add=NET_ADMIN -p8443:8443 nitrokey/nethsm:testing
Integration in benutzerdefinierte Anwendung#
Um das NetHSM in eigene Anwendungen zu integrieren, sind Client-Bibliotheken für fast alle Programmiersprachen verfügbar. Wir empfehlen daher die Verwendung von OpenAPI Generator.
Die Liste aller verfügbaren Sprachen kann wie folgt abgerufen werden.
$ docker run --pull --rm -ti openapitools/openapi-generator-cli list -i stable
Der NetHSM-Client kann wie folgt für Ihre Programmiersprache generiert werden.
$ 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
Der generierte Client-Code, in diesem Beispiel JavaScript, wird im Verzeichnis ./out/
erstellt. Dieser Ordner enthält auch die notwendige Dokumentation, wie er zu verwenden ist.
REST-API#
Die NetHSM’s API-Spezifikation ist im OpenAPI-Format verfügbar und kann im API-Browser eingesehen und getestet werden.