Integrare#

Capitolul descrie procesele pentru diferite sarcini și se adresează tuturor grupurilor de utilizatori.

REST-API#

Interfața principală a NetHSM este o interfață REST-API modernă care garantează cea mai bună performanță și funcționalitate. Specificația API este disponibilă în formatul OpenAPI, și poate fi inspectată și testată în browserul API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .

PKCS#11#

NetHSM este compatibil cu standardul PKCS#11. Driverul necesar este disponibil în depozitul ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Depozitul conține codul sursă și bibliotecile, pentru diferite sisteme de operare. Ghidul PKCS#11 descrie în detaliu modul de utilizare.

Dezvoltare și testare#

O instanță demo publică NetHSM este disponibilă la nethsmdemo.nitrokey.com. Aceasta va fi resetată la fiecare opt ore (CET 6:00, 14:00, 22:00). Utilizator „admin”, parolă „adminadmin”, parolă de deblocare „unlockunlock”.

Alternativ, puteți rula NetHSM ca un container Docker ` <https://hub.docker.com/r/nitrokey/nethsm>`_ la nivel local.

Containerul poate fi executat după cum urmează.

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

Aceasta va rula NetHSM ca un proces Unix în interiorul containerului și va expune API-ul REST pe portul 8443 prin intermediul protocolului HTTPS.

În plus față de rularea NetHSM ca proces Unix, acesta poate fi rulat ca un unikernel acceptat de KVM.

Containerul poate fi executat după cum urmează.

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

Aceasta va rula NetHSM ca un unikernel în interiorul unei mașini virtuale KVM. Containerul va expune API-ul REST, prin intermediul protocolului HTTPS, pe interfața tap200 cu adresa IP 192.168.1.100 și portul 8443.

Important

Containerul utilizează un certificat TLS auto-semnat. Asigurați-vă că utilizați setările de conectare corecte pentru a stabili o conexiune. Vă rugăm să consultați capitolul NetHSM introducere pentru a afla mai multe.

Integrarea în aplicația personalizată#

Pentru a integra NetHSM în propriile aplicații personalizate, sunt disponibile biblioteci client pentru aproape toate limbajele de programare. Aici sunt biblioteci pentru Python și Rust, precum și acest crate Rust de la o terță parte. Pentru toate celelalte limbaje de programare, vă recomandăm să utilizați OpenAPI Generator.

Lista tuturor limbilor disponibile poate fi consultată după cum urmează.

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

Clientul NetHSM poate fi generat pentru limbajul dumneavoastră de programare după cum urmează.

$ 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

Codul generat de client, în acest exemplu JavaScript, va fi creat în directorul ./out/. Acest director conține, de asemenea, documentația necesară modului de utilizare.

Important

Dacă Podman este utilizat cu SELinux, ar putea fi necesară o etichetare a montajului volumului. Modul de SELinux poate fi solicitat cu sestatus |grep "Current mode". Dacă modul este setat la enforcing, este necesară o modificare a contextului. În acest caz, montarea volumului trebuie să fie postfixată cu :z, rezultând -v "${PWD}/out:/out:z".

Interfața liniei de comandă#

Utilizatorii pot administra și utiliza un NetHSM utilizând o interfață de linie de comandă (CLI) dedicată. Nitrokey oferă nitropy, care este distribuită în baza Python pynitrokey. Cu nethsm există o aplicație terță alternativă, care este dezvoltată în crate-ul Rust nethsm-cli.