Integrazione#

Il capitolo descrive i processi per i vari compiti e si rivolge a tutti i gruppi di utenti.

PKCS#11#

NetHSM supporta lo standard PKCS#11. Il driver necessario è disponibile presso il repository ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Il repository contiene il codice sorgente e le librerie, per diversi sistemi operativi. La guida PKCS#11 descrive l’uso in dettaglio.

Sviluppo e test#

Un’istanza demo pubblica di NetHSM è disponibile all’indirizzo nethsmdemo.nitrokey.com. Verrà ripristinata ogni otto ore (CET 6:00, 14:00, 22:00). Utente «admin», password «adminadmin», password di sblocco «unlockunlock».

In alternativa, è possibile eseguire NetHSM come contenitore Docker ` <https://hub.docker.com/r/nitrokey/nethsm>`_ localmente.

Il contenitore può essere eseguito come segue.

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

Questo fornirà l’API REST sulla porta 8443 tramite il protocollo HTTPS.

Importante

Il contenitore utilizza un certificato TLS autofirmato. Assicurarsi di usare le impostazioni di connessione corrette per stabilire una connessione. Per saperne di più, consultare il capitolo Introduzione a NetHSM.

Integrazione all’applicazione personalizzata#

Per integrare il NetHSM nelle proprie applicazioni personalizzate, sono disponibili librerie client per quasi tutti i linguaggi di programmazione. Ecco le librerie per Rust e Python. Per tutti gli altri linguaggi di programmazione si consiglia di utilizzare OpenAPI Generator.

L’elenco di tutte le lingue disponibili può essere recuperato come segue.

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

Il client NetHSM può essere generato per il vostro linguaggio di programmazione come segue.

$ 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

Il codice client generato, in questo esempio JavaScript, sarà creato nella cartella ./out/. Questa cartella contiene anche la documentazione necessaria al suo utilizzo.

Importante

Se Podman viene usato con SELinux, potrebbe essere necessaria un’etichettatura del montaggio del volume. La modalità di SELinux può essere richiesta con sestatus |grep "Current mode". Se la modalità è impostata su enforcing, è necessaria una modifica del contesto. In questo caso il montaggio del volume deve essere postfissato con :z, ottenendo -v "${PWD}/out:/out:z".

REST-API#

La specifica API di NetHSM è disponibile nel formato OpenAPI e può essere ispezionata e testata nel browser API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .