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 référentiel ` <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 en détail comment les utiliser.

Important

Ce pilote n’est encore qu’une première implémentation de validation de concept qui ne met en œuvre que les fonctions nécessaires au fonctionnement des serveurs TLS.

Développement et essais#

Une instance publique de démonstration de NetHSM est disponible à l’adresse nethsmdemo.nitrokey.com.

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 Rust et Python. 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 de l’API du NetHSM’s est disponible au format OpenAPI, et peut être inspectée et testée dans le navigateur d’API.