統合化#
この章では、あらゆるユーザーグループを対象に、さまざまなタスクのプロセスを解説しています。
ピーケーシーエスナンバーイレブン#
NetHSMは、PKCS#11規格に対応しています。必要なドライバは、`リポジトリ<https://github.com/Nitrokey/nethsm-pkcs11>`__から入手できます。このリポジトリには、さまざまなオペレーティングシステム用のソースコードとライブラリが含まれています。
`PKCS#11 ガイド<pkcs11-setup.html>`_ では、その使い方を詳しく説明している。
重要
このドライバは、まだ初期の概念実証の実装であり、TLSサーバーの運用に必要な機能のみを実装しています。
開発・テスト#
公開されているNetHSMのデモインスタンスは、`nethsmdemo.nitrokey.com<https://nethsmdemo.nitrokey.com/api/v1/info>`_ で利用可能です。
また、NetHSMを`Dockerコンテナ<https://hub.docker.com/r/nitrokey/nethsm>`_ として、ローカルで実行することもできます。
コンテナは、次のように実行できます。
$ sudo docker run --rm -ti -p8443:8443 nitrokey/nethsm:testing
$ podman run --rm -ti -p8443:8443 docker.io/nitrokey/nethsm:testing
これにより、ポート 8443 の REST API が HTTPS プロトコルで提供されます。
重要
コンテナは自己署名のTLS証明書を使用しています。正しい接続設定を使用して、接続を確立するようにしてください。詳しくは、`NetHSM導入編<index.html>`__の章をご参照ください。
カスタムアプリケーションへの組込み#
NetHSM を独自のアプリケーションに統合するために、ほとんどのプログラミング言語に対応したクライアントライブラリが用意されています。以下は`Rust<https://github.com/Nitrokey/nethsm-sdk-rs>`_ と`Python<https://github.com/Nitrokey/nethsm-sdk-py>`_ 用のライブラリです。その他のプログラミング言語については、`OpenAPI Generator<https://github.com/OpenAPITools/openapi-generator>`_ の使用をお勧めします。
利用可能な全言語の一覧は、以下のように取得できます。
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman 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
$ 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
生成されたクライアントコード(この例ではJavaScript)は、``./out/``ディレクトリに作成されます。このフォルダには、使用方法の必要なドキュメントも含まれています。
重要
SELinuxを適用しているPodmanを使用する場合、ボリュームマウントへのラベル付けが必要になる場合があります。SELinux のモードは``sestatus |grep "Current mode"`` で指定することができます。モードが``enforcing`` に設定されている場合、コンテキストの変更が必要です。この場合,ボリュームマウントは``:z`` とポストフィックスされ,-v "${PWD}/out:/out:z"
となる必要があります.
REST-API#
NetHSM'のAPI仕様は、OpenAPI format で公開されており、API browser で検査・テストすることができるようになっています。