Ενσωμάτωση#

Το κεφάλαιο περιγράφει διαδικασίες για διάφορες εργασίες και απευθύνεται σε όλες τις ομάδες χρηστών.

REST-API#

Η κύρια διεπαφή του NetHSM είναι ένα σύγχρονο REST-API που εγγυάται τις καλύτερες επιδόσεις και λειτουργίες. Η προδιαγραφή του API είναι διαθέσιμη σε μορφή OpenAPI, και μπορεί να ελεγχθεί και να δοκιμαστεί στο πρόγραμμα περιήγησης API.

PKCS#11#

Το NetHSM υποστηρίζει το πρότυπο PKCS#11. Το απαιτούμενο πρόγραμμα οδήγησης είναι διαθέσιμο από το αποθετήριο ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Το αποθετήριο περιέχει τον πηγαίο κώδικα και τις βιβλιοθήκες, για διάφορα λειτουργικά συστήματα. Ο οδηγός PKCS#11 περιγράφει λεπτομερώς τη χρήση.

Ανάπτυξη και δοκιμή#

Μια δημόσια δοκιμαστική περίπτωση NetHSM είναι διαθέσιμη στη διεύθυνση nethsmdemo.nitrokey.com. Θα επαναφέρεται κάθε οκτώ ώρες (CET 6:00, 14:00, 22:00). Χρήστης «admin», κωδικός πρόσβασης «adminadmin», κωδικός πρόσβασης ξεκλειδώματος «unlockunlock».

Εναλλακτικά, μπορείτε να εκτελέσετε το NetHSM ως δοχείο Docker τοπικά.

Το δοχείο μπορεί να εκτελεστεί ως εξής.

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

Αυτό θα εκτελέσει το NetHSM ως διεργασία Unix μέσα στο δοχείο και θα εκθέσει το REST API στη θύρα «8443» μέσω του πρωτοκόλλου HTTPS.

Εκτός από την εκτέλεση του NetHSM ως διεργασία Unix, μπορεί να εκτελεστεί και ως unikernel που υποστηρίζεται από το KVM.

Το δοχείο μπορεί να εκτελεστεί ως εξής.

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

Αυτό θα εκτελέσει το NetHSM ως ένα unikernel μέσα σε μια εικονική μηχανή KVM. Το δοχείο θα εκθέσει το REST API, μέσω του πρωτοκόλλου HTTPS, στη διεπαφή tap200 με τη διεύθυνση IP 192.168.1.100 και τη θύρα 8443.

Σημαντικό

Ο περιέκτης χρησιμοποιεί ένα αυτο-υπογεγραμμένο πιστοποιητικό TLS. Βεβαιωθείτε ότι χρησιμοποιείτε τις σωστές ρυθμίσεις σύνδεσης για να δημιουργήσετε μια σύνδεση. Ανατρέξτε στο κεφάλαιο Εισαγωγή στο NetHSM για να μάθετε περισσότερα.

Ενσωμάτωση σε προσαρμοσμένη εφαρμογή#

Για την ενσωμάτωση του NetHSM σε δικές σας προσαρμοσμένες εφαρμογές, διατίθενται βιβλιοθήκες-πελάτες για όλες σχεδόν τις γλώσσες προγραμματισμού. Εδώ υπάρχουν βιβλιοθήκες για Python και Rust καθώς και αυτό το 3rd party Rust crate. Για όλες τις άλλες γλώσσες προγραμματισμού συνιστούμε τη χρήση του OpenAPI Generator.

Ο κατάλογος όλων των διαθέσιμων γλωσσών μπορεί να ανακτηθεί ως εξής.

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

Ο πελάτης NetHSM μπορεί να δημιουργηθεί για τη γλώσσα προγραμματισμού σας ως εξής.

$ 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

Ο παραγόμενος κώδικας πελάτη, σε αυτό το παράδειγμα JavaScript, θα δημιουργηθεί στον κατάλογο ./out/. Αυτός ο φάκελος περιέχει επίσης την απαραίτητη τεκμηρίωση για τον τρόπο χρήσης.

Σημαντικό

Εάν το Podman χρησιμοποιείται με την επιβολή SELinux, μπορεί να απαιτείται μια επισήμανση στην προσάρτηση τόμου. Η λειτουργία του SELinux μπορεί να ζητηθεί με την εντολή sestatus |grep "Current mode". Εάν η λειτουργία έχει οριστεί σε enforcing, απαιτείται αλλαγή στο πλαίσιο. Σε αυτή την περίπτωση, η προσάρτηση τόμου πρέπει να μεταπροσδιοριστεί με :z, με αποτέλεσμα -v "${PWD}/out:/out:z".

Διεπαφή γραμμής εντολών#

Οι χρήστες μπορούν να διαχειρίζονται και να χρησιμοποιούν ένα NetHSM χρησιμοποιώντας μια ειδική διεπαφή γραμμής εντολών (CLI). Το Nitrokey προσφέρει nitropy, το οποίο διανέμεται στο βασισμένο στην Python pynitrokey. Με το nethsm υπάρχει μια εναλλακτική εφαρμογή τρίτου μέρους, η οποία αναπτύσσεται στο Rust crate nethsm-cli.