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
$ podman run --rm -ti -p8443:8443 docker.io/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
$ podman 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
$ podman 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.