Intégration#

Ce chapitre décrit des processus pour diverses tâches et s’adresse à tous les groupes d’utilisateurs.

PKCS#11#

Le NetHSM prend en charge la norme PKCS#11. Le pilote requis est disponible dans le dépôt ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Le dépôt contient le code source et les bibliothèques, pour différents systèmes d’exploitation. Le guide PKCS#11 décrit l’utilisation en détail.

Développement et essais#

Une instance publique de démonstration de NetHSM est disponible à l’adresse nethsmdemo.nitrokey.com. Elle sera réinitialisée toutes les huit heures (CET 6:00, 14:00, 22:00). Utilisateur « admin », mot de passe « adminadmin », mot de passe de déverrouillage « unlockunlock ».

Vous pouvez également exécuter le NetHSM en tant que conteneur Docker ` <https://hub.docker.com/r/nitrokey/nethsm>`_ localement.

Le conteneur peut être exécuté comme suit.

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

Ceci fournira l’API REST sur le port 8443 via le protocole HTTPS.

Important

Le conteneur utilise un certificat TLS auto-signé. Veillez à utiliser les paramètres de connexion corrects pour établir une connexion. Veuillez vous référer au chapitre NetHSM introduction pour en savoir plus.

Intégration dans une application personnalisée#

Pour intégrer le NetHSM dans des applications personnalisées, des bibliothèques clients sont disponibles pour presque tous les langages de programmation. Voici les bibliothèques pour Python et Rust ainsi que ce crate Rust tiers. Pour tous les autres langages de programmation, nous recommandons d’utiliser OpenAPI Generator.

La liste de toutes les langues disponibles peut être récupérée comme suit.

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

Le client NetHSM peut être généré pour votre langage de programmation comme suit.

$ 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

Le code client généré, dans cet exemple JavaScript, sera créé dans le répertoire ./out/`. Ce dossier contient également la documentation nécessaire à son utilisation.

Important

Si Podman est utilisé avec SELinux, un étiquetage du montage du volume peut être nécessaire. Le mode de SELinux peut être demandé avec sestatus |grep "Current mode". Si le mode est défini à enforcing, un changement de contexte est nécessaire. Dans ce cas, le montage du volume doit être postfixé avec :z, ce qui donne -v "${PWD}/out:/out:z".

REST-API#

La spécification API de NetHSM est disponible au format OpenAPI ` <https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml>`_ , et peut être inspectée et testée dans le navigateur API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .