Integración#

El capítulo describe procesos para diversas tareas y se dirige a todos los grupos de usuarios.

REST-API#

La interfaz principal de NetHSM es una moderna REST-API que garantiza el mejor rendimiento y funcionalidad. La especificación de la API está disponible en formato OpenAPI, y puede inspeccionarse y probarse en el navegador de API ` <https://nethsmdemo.nitrokey.com/api_docs/index.html>`_ .

PKCS#11#

El NetHSM soporta el estándar PKCS#11. El controlador necesario está disponible en el repositorio ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. El repositorio contiene el código fuente y las bibliotecas para diferentes sistemas operativos. La guía PKCS#11 describe el uso en detalle.

Desarrollo y pruebas#

Hay disponible una instancia pública de demostración de NetHSM en nethsmdemo.nitrokey.com. Se reiniciará cada ocho horas (CET 6:00, 14:00, 22:00). Usuario «admin», contraseña «adminadmin», contraseña de desbloqueo «unlockunlock».

Como alternativa, puede ejecutar NetHSM como un contenedor Docker ` <https://hub.docker.com/r/nitrokey/nethsm>`_ localmente.

El contenedor puede ejecutarse del siguiente modo.

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

Esto ejecutará NetHSM como un proceso Unix dentro del contenedor y expondrá la API REST en el puerto 8443 a través del protocolo HTTPS.

Además de ejecutar NetHSM como un proceso Unix, puede ejecutarse como un unikernel soportado por KVM.

El contenedor puede ejecutarse del siguiente modo.

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

Esto ejecutará NetHSM como un unikernel dentro de una máquina virtual KVM. El contenedor expondrá la API REST, a través del protocolo HTTPS, en la interfaz tap200 con la dirección IP 192.168.1.100 y el puerto 8443.

Importante

El contenedor utiliza un certificado TLS autofirmado. Asegúrese de utilizar la configuración de conexión correcta para establecer una conexión. Consulte el capítulo Introducción a NetHSM para obtener más información.

Integración en la aplicación personalizada#

Para integrar NetHSM en sus propias aplicaciones personalizadas, existen bibliotecas cliente para casi todos los lenguajes de programación. Aquí están las bibliotecas para Python y Rust así como esta tercera parte Rust crate. Para todos los demás lenguajes de programación recomendamos utilizar OpenAPI Generator.

La lista de todos los idiomas disponibles se puede recuperar de la siguiente manera.

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

El cliente NetHSM puede ser generado para su lenguaje de programación de la siguiente manera.

$ 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

El código cliente generado, en este ejemplo JavaScript, se creará en el directorio ./out/. Esta carpeta también contiene la documentación necesaria para su uso.

Importante

Si Podman se utiliza con SELinux reforzado, puede ser necesario etiquetar el montaje del volumen. El modo de SELinux se puede solicitar con sestatus |grep "Current mode". Si el modo es enforcing, se requiere un cambio en el contexto. En este caso el montaje del volumen debe ser postfijado con :z, resultando -v "${PWD}/out:/out:z".

Interfaz de línea de comandos#

Los usuarios pueden administrar y utilizar un NetHSM utilizando una interfaz de línea de comandos (CLI) dedicada. Nitrokey ofrece nitropy, que se distribuye en la aplicación basada en Python pynitrokey. Con nethsm existe una aplicación alternativa de terceros, que está desarrollada en el crate de Rust nethsm-cli.