次の方法で共有


Azure Cloud HSM のトラブルシューティング

この記事は、Azure Cloud HSM サービスの使用時に発生する可能性のある一般的な問題とエラーのトラブルシューティングに役立ちます。

一般的なエラー メッセージ

次のセクションでは、仮想マシン (VM) とハードウェア セキュリティ モジュール (HSM) に関連するエラーなど、一般的なエラーに関する質問に回答します。

azcloudhsm_mgmt_utilを実行すると、"証明書エラー: [証明書署名エラー]" というエラー メッセージが表示されるのはなぜですか?

このエラーは、次の手順を実行するときに発生する可能性があります。

  1. 別の VM から Azure Cloud HSM デプロイを作成して初期化します。
  2. 初期化元の管理 VM の PO.crt ファイルが見つからないか、その正しいファイルが存在しない別の VM から Cloud HSM クライアント SDK をインストールして実行します。

PO.crt ファイルを管理 VM から新しい VM にコピーし、azcloudhsm_mgmt_util再実行すると、HSM への接続が正常に行われます。

azcloudhsm_clientの実行時に、"INF: shutdown_ssl_socket: SSL_shutdownがclose_notifyアラートを送信" というエラーメッセージが表示されるのはなぜですか?

このエラーは、次の手順を実行するときに発生する可能性があります。

  1. 別の VM から Azure Cloud HSM デプロイを作成して初期化します。
  2. 初期化元の管理 VM の PO.crt ファイルが見つからないか、その正しいファイルが存在しない別の VM から Cloud HSM クライアント SDK をインストールして実行します。

PO.crt ファイルを管理 VM から新しい VM にコピーし、azcloudhsm_client再実行すると、HSM への接続が正常に行われます。

"azcloudhsm_application.cfg is not present" というエラー メッセージが表示されるのはなぜですか?

アプリケーションが正常に実行されるようにするには、次の 2 つの条件を満たす必要があります。

  • azcloudhsm_application.cfg ファイルは、アプリケーションと同じディレクトリに存在します。

  • azcloudhsm_client ツールが実行されています。 azcloudhsm_clientがアクティブでない場合は、失敗したソケット接続が発生します。

    同様に、 azcloudhsm_application.cfg ファイルがない場合、エラー メッセージが表示されます。 アプリケーションの実行場所によっては、Azure Cloud HSM SDK ディレクトリからアプリケーションを実行しているディレクトリに azcloudhsm_application.cfg ファイルをコピーすることが必要になる場合があります。

Azure Cloud HSM 用の OpenSSL エンジン

Azure Cloud HSM 用の OpenSSL エンジンは Windows をサポートしていますか?

いいえ。 Azure Cloud HSM 用の OpenSSL エンジンでは、Linux (Ubuntu 20.04、Ubuntu 22.04、RHEL 7、RHEL 8、CBL Mariner 2) のみがサポートされます。

"無効なエンジン 'azcloudhsm_openssl' が共有ライブラリを読み込めませんでした" というエラー メッセージが表示されるのはなぜですか?

このエラー メッセージは、前提条件となる環境変数 LD_LIBRARY_PATH が構成されていないことを示しています。 この構成は必要です。 LD_LIBRARY_PATH環境変数を、Azure Cloud HSM SDK が配置されているディレクトリに設定します。

次のコマンドを実行して、正しい SDK バージョンを反映するように環境変数を更新する必要があります。

export LD_LIBRARY_PATH=/opt/azurecloudhsm/lib64/:$LD_LIBRARY_PATH

"環境変数azcloudhsm_openssl_confが設定されていません" というエラー メッセージが表示されるのはなぜですか?

このエラー メッセージは、前提条件の環境変数 azcloudhsm_openssl_conf が構成されていないことを示します。 azcloudhsm_openssl_conf環境変数を、Azure Cloud HSM SDK ディレクトリ内のazcloudhsm_openssl_dynamic.conf ファイルのファイル パスの場所に設定します。

次のコマンドを実行して、正しい SDK バージョンを反映するように環境変数を更新する必要があります。

export azcloudhsm_openssl_conf=/opt/azurecloudhsm/bin/azcloudhsm_openssl_dynamic.conf  

"環境変数azcloudhsm_passwordが設定されていません" というエラー メッセージが表示されるのはなぜですか?

このエラー メッセージは、前提条件となる環境変数 azcloudhsm_password が構成されていないことを示しています。 azcloudhsm_password環境変数を cryptouser:password の値に設定します。

正しい暗号化ユーザーとパスワードを反映するように環境変数を更新する必要があります。

export azcloudhsm_password="cu1:user1234"

Azure Cloud HSM の JCE プロバイダー

次のセクションでは、Java Cryptography Extension (JCE) に関連する質問に回答します。

JCE と Azure Cloud HSM の統合は Windows をサポートしていますか?

いいえ。 JCE と Azure Cloud HSM の統合では、Linux (Ubuntu 20.04、Ubuntu 22.04、RHEL 7、RHEL 8、CBL Mariner 2) のみがサポートされます。

"HSM にログインするための資格情報が見つかりませんでした" というエラー メッセージが表示されるのはなぜですか?

このエラーは、Cloud HSM へのサインインに必要な資格情報の検索または認証に関する課題を示しています。 このドキュメントのサンプルを使用する場合、または Azure Cloud HSM 用 JCE プロバイダーをアプリケーションに組み込む場合は、資格情報を使用して明示的にサインインすることが不可欠です。

// Explicit Login with Credentials
LoginManager lm=LoginManager.getInstance();
lm.login("PARTITION_1","cu1","user1234");

// Logout of the HSM
lm.logout();

"この操作の値が 0 の属性" というエラー メッセージが表示されるのはなぜですか? ユーザー KEK に属性を設定する必要がありますか?

このエラーは、ユーザーが生成したキー暗号化キー (KEK) が作成されておらず、抽出可能として指定されておらず、 wrap_with_trusted が 1 に設定されていることを示します。 キーのインポート、キーラップ、キーのラップ解除操作を実行するときに使用する適切な設定については、 JCE 統合ガイドのユーザー生成 KEK の作成に関するセクションを参照してください。

"デーモン ソケット接続エラー、API ログインに失敗しました" というエラー メッセージが表示される理由

このエラーは、Cloud HSM へのサインインに必要な資格情報の検索または認証に関する課題を示しています。 JCE 統合ガイドのサンプルを使用する場合、または Azure Cloud HSM JCE プロバイダーをアプリケーションに組み込む場合は、接続を確保するために資格情報を使用して明示的にサインインすることが不可欠です。

Azure Cloud HSM 用 PKCS#11 ライブラリ

"C_Loginエラー コードで失敗しました: 0xa3" というエラー メッセージが表示されるのはなぜですか?

0xa3 エラーは、サインインエラーを示します。 エラーは、渡す PIN パラメーターの形式に関連しているか、PIN (パスワード) が正しくない可能性があります。

PIN は、次の形式で指定する必要があります: char pPin[256] = "crypto_user:user123";pPin値は、<username>:<password>の構造に従う必要があります。 逸脱するとサインインエラーが発生する可能性があるため、この形式で pPin 値を指定していることを確認します。

"C_Initialize() failed with 00000005 (Failed to connect socket)" というエラー メッセージが表示されるのはなぜですか?

C_Initialize中に失敗したソケット接続は、システムで実行されていないazcloudhsm_client ツールに関連している可能性があります。 PKCS#11 アプリケーションを正常に実行するには、 azcloudhsm_client が実行されている必要があります。 azcloudhsm_clientを開始するには、別のターミナルで次のいずれかのコマンドを実行します。

DEB または RPM を使用して Azure Cloud HSM SDK をインストールした場合、クライアントはサービスとして実行するように自動的に構成されません。 SDK は、インストール中に、 /etc/systemd/system/azure-cloud-hsm.serviceの下にサービス ユニット ファイルを含めます。 azcloudhsm_clientをサービスとして実行できるようにするには、定義済みのazure-cloud-hsm.service ファイルを使用します。

systemd構成を再度読み込み、サービスが継続的に実行されるようにします。 次の手順を実行します。

  1. ターミナル ウィンドウを開き、ディレクトリを /etc/systemd/system に変更します。このディレクトリには、Cloud HSM サービス ユニット ファイルがあります。

    cd /etc/systemd/system
    
  2. Cloud HSM クライアント サービスを開始して有効にします。

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Cloud HSM クライアント サービスの状態を確認します。

    sudo systemctl status azure-cloud-hsm.service
    
  4. systemd構成を再度読み込みます。

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux (手動)

稼働していない場合は、クライアント デーモンを起動します。

sudo ./azcloudhsm_client azcloudhsm_client.cfg

次のコマンドを使用して、バックグラウンドでクライアント デーモンを実行することもできます。 または、クライアント デーモンをサービスとして実行して、常に実行されるようにすることもできます。

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

MSI パッケージを使用して Azure Cloud HSM SDK をインストールした場合、クライアントはサービスとして実行するように既に構成されています。 クライアントが実行されていない場合は、 Services.mscを開き、 Microsoft Azure Cloud HSM クライアント サービスを右クリックして、[開始] を選択 します

Windows (手動)

クライアント デーモンが実行されていない場合は起動します。

cd C:\Program Files\Microsoft Azure Cloud HSM Client SDK 
.\azcloudhsm_client.exe .\azcloudhsm_resource.cfg 

Linux 用 PKCS#11 ライブラリは、クライアント構成の検索方法をどのように認識していますか?

PKCS#11 ライブラリは、アプリケーションを実行し、PKCS#11 ライブラリを使用しているアプリケーション サーバーにパーティション所有者証明書 (PO.crt) のコピーが必要であるため、クライアント構成を検索する方法を認識しています。 パーティション所有者証明書に加えて、次の手順を実行します。

  • SDK がインストールされているアプリケーション サーバー上の /azcloudhsm_client/azcloudhsm_client.cfg を更新して、Azure Cloud HSM のデプロイ (つまり、 hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net) を指す必要があります。
  • azcloudhsm_client ツールは、Azure Cloud HSM デプロイに接続するアプリケーション サーバーで実行されている必要があります。
  • 構文 <username>:<password>を使用して、PKCS#11 アプリケーション内で PIN を指定する必要があります。 この PIN は、Azure Cloud HSM デプロイへの C_Login の呼び出しに使用されます。
  • Azure Cloud HSM 用の PKCS#11 ライブラリを使用するには、PKCS#11 アプリケーションに pkcs11_headers/include/cryptoki.hpkcs11_headers/include/pkcs11t.h を含める必要があります。

Windows 用 PKCS#11 ライブラリ (azcloudhsm_pkcs11.dll) は、クライアント構成の検索方法をどのように認識していますか?

Azure Cloud HSM Windows SDK の azcloudhsm_pkcs11.dll ファイルは、アプリケーションを実行し、PKCS#11 ライブラリを使用しているアプリケーション サーバーにパーティション所有者証明書 (PO.crt) のコピーが必要であるため、クライアント構成を検索する方法を認識しています。 パーティション所有者証明書に加えて、次の手順を実行します。

  • SDK がインストールされているアプリケーション サーバー上の /azcloudhsm_client/azcloudhsm_client.cfg を更新して、Azure Cloud HSM のデプロイ (つまり、 hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net) を指す必要があります。
  • azcloudhsm_client ツールは、Azure Cloud HSM デプロイに接続するアプリケーション サーバーで実行する必要があります。
  • 構文 <username>:<password>を使用して、PKCS#11 アプリケーション内で PIN を指定する必要があります。 この PIN は、Azure Cloud HSM デプロイへの C_Login の呼び出しに使用されます。
  • Azure Cloud HSM 用の PKCS#11 ライブラリを使用するには、PKCS#11 アプリケーションに pkcs11_headers\include\cryptoki.hpkcs11_headers\include\pkcs11t.h を含める必要があります。

キーまたはキーストアを設定しようとしたときに PKCS#11 エラーが発生するのはなぜですか?

Azure Cloud HSM クライアントが実行されていることを確認します (sudo ./azcloudhsm_client azcloudhsm_client.cfg)。 ユーザーが正しくない、パスワードが正しくない、液体のセキュリティ クライアントが実行されていない、またはクライアントが接続に失敗すると、次のエラーが発生する可能性があります。

Error Message:ERROR at line 1:
ORA-28407: Hardware Security Module failed with PKCS#11 error
CKR_GENERAL_ERROR(5)

PKCS#11 ライブラリ (azcloudhsm_pkcs11.dll) と OpenSC の統合方法

機密性の高い属性とプライベート属性を0できないため、オープンソース スマート カード (OpenSC) ツールを使用する場合は、--sensitive引数と--private引数を使用する必要があります。 これらの引数がない場合、OpenSC ツールは機密属性とプライベート属性を 0に設定します。 Azure Cloud HSM では常に機密性の高いプライベートな動作が強制されるため、これらの属性によって例外が生成されます。

Advanced Encryption Standard (AES) ラッピングの例を次に示します。

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keygen --key-type AES:32*

楕円曲線暗号化 (ECC) P521 の例を次に示します。

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keypairgen --key-type EC:prime256v1 --usage-sign

Azure Cloud HSM の SSL/TLS オフロード

次のセクションでは、Secure Sockets Layer (SSL) またはトランスポート層セキュリティ (TLS) 処理のオフロードに関連する質問に回答します。

Azure Cloud HSM 用の OpenSSL エンジンは、SSL/TLS オフロード用の PKCS#11 をサポートしていますか?

いいえ。 Azure Cloud HSM 用の OpenSSL エンジンでは、SSL/TLS オフロード用の PKCS#11 はサポートされていません。 SSL/TLS オフロードに PKCS#11 を必要とするお客様は、 Azure Managed HSM 用の TLS オフロード ライブラリを使用する必要があります。

azcloudhsm_utilの実行時に、"ソケットの接続に失敗しました,LIQUIDSECURITY: デーモン ソケット接続エラー" というエラー メッセージが表示されるのはなぜですか?

エラー メッセージは、 azcloudhsm_client が実行されていないことを示しています。 Azure Cloud HSM ツールが正常に動作するために、 azcloudhsm_client が実行されていることを確認します。 azcloudhsm_clientを開始するには、サービスとして実行されていることを確認するか、別のターミナルで次のいずれかのコマンドを手動で実行します。

DEB または RPM を使用して Azure Cloud HSM SDK をインストールした場合、クライアントはサービスとして実行するように自動的に構成されません。 SDK は、インストール中に、 /etc/systemd/system/azure-cloud-hsm.serviceの下にサービス ユニット ファイルを含めます。 azcloudhsm_clientをサービスとして実行できるようにするには、定義済みのazure-cloud-hsm.service ファイルを使用します。

systemd構成を再度読み込み、サービスが継続的に実行されるようにします。 次の手順を実行します。

  1. ターミナル ウィンドウを開き、ディレクトリを /etc/systemd/system に変更します。このディレクトリには、Cloud HSM サービス ユニット ファイルがあります。

    cd /etc/systemd/system
    
  2. Cloud HSM クライアント サービスを開始して有効にします。

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Cloud HSM クライアント サービスの状態を確認します。

    sudo systemctl status azure-cloud-hsm.service
    
  4. systemd構成を再度読み込みます。

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux (手動)

クライアント デーモンが実行されていない場合は起動します。

sudo ./azcloudhsm_client azcloudhsm_client.cfg

次のコマンドを使用して、バックグラウンドでクライアント デーモンを実行することもできます。 または、クライアント デーモンをサービスとして実行して、常に実行されるようにすることもできます。

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

"環境変数azcloudhsm_passwordが設定されていません" というエラー メッセージが表示されるのはなぜですか?

このエラー メッセージは、前提条件となる環境変数 azcloudhsm_password が構成されていないことを示しています。 この問題を解決するには、 azcloudhsm_password 環境変数を cryptouser:password の値に設定します。

正しい暗号化ユーザーとパスワードを反映するように環境変数を更新します。

export azcloudhsm_password="cu1:user1234"

キーをインポートしようとすると、"キー/トークンが見つかりません" または "無効なキー ハンドル/トークン" というエラー メッセージが表示されるのはなぜですか?

エラーメッセージは、指定されたラッピングキー ハンドル (KEK ハンドル ID) が正しくないことを示しています。 パラメーター -f はインポートするキーを含むファイル名を指定しますが、 -w は折り返しキー ハンドルを指定します。 ユーザー生成 KEK の作成時に、 -w 値はユーザーが生成した KEK ID のキー ハンドル ID である必要があります。

azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 importPrivateKey -l importTestKey -f key.pem -w 262150

NGINX ソースを構成しようとすると、"/configure: error: C コンパイラ cc not found" というエラー メッセージが表示されるのはなぜですか?

エラー メッセージは、 configure コマンドを実行するときに、システムに C コンパイラが見つからないことを示しています。 インストールによっては、次のコマンドを実行した後に、 openssl libssl-devzlib1g zlib1g-devのインストールが必要になる場合もあります。 これらの項目は依存関係です。

Red Hat ベースのシステム (YUM を使用)

sudo yum update
sudo yum groupinstall "Development Tools"

Red Hat ベースのシステム (DNF を使用)

sudo dnf update
sudo dnf install "Development Tools"

Ubuntu ベースのシステム (APT を使用)

sudo apt update  
sudo apt install build-essential 

"/configure: error: SSL モジュールには OpenSSL ライブラリが必要です" というエラー メッセージが表示されるのはなぜですか?

エラー メッセージは、NGINX の SSL モジュールを有効にするために OpenSSL ライブラリが必要であることを示しています。 この問題を解決するには、次のコマンドを実行し、 configure をもう一度実行します。

sudo apt-get install libssl-dev

"/configure: error: HTTP gzip モジュールには zlib ライブラリが必要です" というエラー メッセージが表示されるのはなぜですか?

エラー メッセージは、NGINX の HTTP gzip モジュールに zlib ライブラリが必要であることを示します。 この問題を解決するには、次のコマンドを実行し、 configure をもう一度実行します。

sudo apt-get install zlib1g-dev

"HSM エラー: RET_USER_LOGIN_FAILURE" というエラー メッセージが表示される理由

エラー メッセージは、暗号化操作を試行している 1 つ以上のノードに、指定したユーザーが存在しないことを示します。 Azure Cloud HSM は 3 つのノードのクラスターで動作しますが、サインインに失敗したノードに操作が送信されました。

このような場合、AzureCloudHSM-ClientSDK ディレクトリ内にcritical_err_info_ ファイルが生成されます。 このファイルには、"Status: HSM Error: This user doesn't exist" (状態: HSM エラー: このユーザーは存在しません) と表示されます。

このエラーを軽減するには、Azure Cloud HSM デプロイの 3 つのノードすべてにレプリケートされる暗号化ユーザー (CU) を作成する必要があります。 次の例は、 azcloudhsm_mgmt_util を開始し、管理者が暗号化責任者 (CO) ユーザーとしてサインインする方法を示しています。 次に、CU のロールを持つ cu1 ユーザーを作成します。

sudo ./azcloudhsm_mgmt_util ./azcloudhsm_mgmt_util.cfg
loginHSM CO admin adminpassword 
createUser CU cu1 user1234
logoutHSM
loginHSM CU cu1 user1234

作成した CRT、CSR、またはキー ファイルの内容を表示するにはどうすればよいですか?

ターミナルで作成した証明書 (CRT)、証明書署名要求 (CSR)、またはキー ファイルの内容を表示するには、次のコマンドを使用します。

cat filename.key

プライバシー強化メール (PEM) ファイルに含まれる X.509 証明書に関する詳細情報を表示するには、次のコマンドを使用します。 PEM ファイルに秘密キーまたはその他の種類のデータが含まれている場合は、それに応じてコマンドの調整が必要になる場合があります。

openssl x509 -in filename.pem -text -noout

CSR に関する詳細情報を表示するには、次のコマンドを使用します。 この情報には、サブジェクト、公開キー、および要求に含まれる属性が含まれます。

openssl req -in filename.csr -text -noout

Rivest-Shamir-Adleman (RSA) 秘密キーに関する詳細情報を表示するには、次のコマンドを使用します。 この情報には、キーの剰余、公開指数、およびその他のパラメーターが含まれます。

openssl rsa -in filename.key -text -noout

楕円曲線 (EC) 秘密キーに関する詳細情報を表示するには、次のコマンドを使用します。 曲線パラメーター、秘密キー値、およびその他の関連情報が表示されます。

openssl ec -in filename.key -text -noout

署名のために Azure Cloud HSM で ED25519 キー ペアを生成するにはどうすればよいですか?

ED25519 キーは、通常、自己署名証明書または秘密キーを直接使用する証明書署名プロセスで使用されます。 azcloudhsm_utilまたは Azure Cloud HSM 用の OpenSSL エンジンを使用して、ED25519 キー ペアを生成できます。

Von Bedeutung

openssl genpkeyまたはopenssl ecparamを使用することはお勧めしません。 openssl genpkeyまたはopenssl ecparam-engine azcloudhsm_opensslと共に使用してED25519または ECCKeyPair キーを生成しても、HSM キーは生成されません。 代わりに、ソフトウェア キーが生成されます。 ED25519またはその他の EC キーの種類が必要な場合は、 azcloudhsm_util を使用して HSM 内にキーを作成する必要があります。

Openssl genpkeyopenssl ecparamはどちらも暗号化キーを生成するための OpenSSL コマンドですが、さまざまな目的に対応し、異なるキーの種類をサポートします。 RSA、DSA、ECDSA、ED25519 キーなど、さまざまな非対称暗号化キーを生成する必要がある場合は、 openssl genpkey を使用します。 openssl ecparam特に、prime256v1、secp384r1、secp521r1 などの楕円曲線暗号化キー (ECDSA) を生成するために使用します。

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 28 -l labelED25519Test

Azure Cloud HSM OpenSSL エンジンを使用して CSR を生成する前に、azcloudhsm_utilを使用して RSA キーと EC キーを生成できますか?

はい。 次の azcloudhsm_util コマンドを実行して RSA または EC キーを作成し、秘密キーを偽の PEM 形式に抽出できます。 {PRIVATE_KEY_HANDLE}を、作成した RSA キーまたは EC キーの秘密キー ハンドルに置き換えます。

PEM 形式の秘密キー メタデータ ファイルには、機密性の高い秘密キーマテリアルは含まれません。 メタデータによって秘密キーが識別され、Azure Cloud HSM 用の OpenSSL エンジンのみがこのファイルを認識します。

RSA キーを作成するには、次のコマンドを使用します。

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genRSAKeyPair -m 2048 -e 65537 -l labelRSATest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

EC キーを作成するには、次のコマンドを使用します。

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 2 -l labelECTest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

Azure Cloud HSM 用 SQL Server EKM

次のセクションでは、SQL Server の拡張キー管理 (EKM) 機能に関連する質問に回答します。

Azure Cloud HSM 用の SQL Server EKM プロバイダーは対称キーをサポートしていますか?

いいえ。 SQL Server では、透過的なデータ暗号化の対称キーはサポートされていません。 非対称キーのみがサポートされています。

Azure Cloud HSM 用の SQL Server EKM プロバイダーは、Linux 上の SQL Server をサポートしていますか?

いいえ。 Azure Cloud HSM 用の SQL Server EKM プロバイダーでは、Windows Server のみがサポートされています。

Azure Cloud HSM 用の SQL Server EKM プロバイダーは、SQL Server SaaS/PaaS をサポートしていますか?

いいえ。 Azure Cloud HSM は、サービスとしてのインフラストラクチャ (IaaS) のみです。 サービスとしてのソフトウェア (SaaS) またはサービスとしてのプラットフォーム (PaaS) のお客様は、Azure SQL Database と Azure SQL Managed Instance の透過的なデータ暗号化をサポートする Azure Managed HSM を使用する必要があります。

Azure Cloud HSM 用の SQL Server EKM プロバイダーは、複数のサインイン、資格情報、接続をサポートしていますか?

Azure Cloud HSM 用の SQL Server EKM プロバイダーの場合、サインインまたは SQL 接続は制限されており、割り当てることができる資格情報は 1 つだけです。

なぜ「エラー: 暗号化プロバイダーを初期化できません。」というエラーメッセージが表示されるのですか? プロバイダーのエラー コード: 1。 (エラー - 詳細については EKM プロバイダーに問い合わせてください)"?

この一般的なエラーは、SQL Server のインストール後に Azure Cloud HSM の MSI パッケージを実行するときに発生する可能性があります。 SQL Server を再起動すると、エラーは消えます。 その時点で、Azure Cloud HSM の MSI パッケージを実行したときに作成した環境変数と設定が選択されます。

AD CS と Azure Cloud HSM の統合

次のセクションでは、Active Directory 証明書サービス (AD CS) に関連する質問に回答します。

指定された例を使用して Microsoft KSP から証明書を移行しようとすると、"Openssl-ca.cnf ファイルを開けない" というエラー メッセージが表示されるのはなぜですか?

このエラーは、キー ストレージ プロバイダー (KSP) から証明書を移行しようとしているときに、 openssl-ca.cnf ファイルが存在しない場合に一般的に発生します。 ファイルは自分で作成することも、別のソースから取得することもできます。

SaaS ソリューションとして Azure Cloud HSM を使用する企業ネットワークで、独自の署名サーバーを使用できますか?

Azure Cloud HSM は IaaS のみです。 ただし、企業ネットワークでは独自の署名サーバーを使用できます。

ローカル ネットワーク ゲートウェイからサイト間またはポイント対サイト VPN 接続を構成できます。 これは最も一般的な方法であり、ほとんどのユース ケースに適しています。 企業ネットワークのオンプレミス サーバーと Azure Cloud HSM がデプロイされている場所の間に VPN 接続を設定します。 詳細については、「 チュートリアル: Azure portal でサイト間 VPN 接続を作成する」を参照してください。

オンプレミスの署名サーバー用の AD CS を使用できます。 SDK はオンプレミスのホスト上にあり、クライアントは Azure 仮想ネットワーク内のプライベート IP アドレスに到達できる必要があります。 これには次の要件があります。

  • Cryptography API: Next Generation (CNG) プロバイダー for Azure Cloud HSM が存在するのと同じコンピューターで azcloudhsm_client を実行する必要があります。
  • azcloudhsm_client ツールは、Azure 仮想ネットワークのプライベート IP と通信できる必要があります。

AD CS をテストしたときに、RSA キー ペアを生成し、証明書管理を使用して署名しました。

Cloud HSM プロバイダー (たとえば、azcloudhsm_util) を介して署名または検証する唯一の方法は受け入れられますか?

いいえ。 Azure Cloud HSM SDK と、それが提供するインターフェイス (PKCS#11、CNG、KSP、JCE、OpenSSL エンジンなど) を使用することをお勧めします。 署名または検証の操作には、署名ツール (signtool.exe) を使用することもできます。

AD CS は、Azure Cloud HSM に CNG または KSP を使用するように構成されています。

signtool.exe経由で Cloud HSM からの署名/検証を使用できますか。

はい。 署名ツールは、Cloud HSM デプロイに自動的に移動します。 azcloudhsm_utilを使用する必要はありません。 この手順には、AD CS 構成をすばやくテストして検証するための方法として、 azcloudhsm_util が含まれています。

Cloud HSM のキー ペアに基づく自己署名証明書をテストに使用できますか?

はい。 テスト目的で、キー ペアに基づいて自己署名証明書を使用できます。

ローカルの Windows 証明書ストアを介して証明書を使用できるようにする統合または方法はありますか。

この目的には、 certreq.exe ツールを使用できます。

Azure Cloud HSM の CNG プロバイダーと KSP プロバイダーはどのようなアルゴリズムをサポートしていますか?

  • RSA の暗号化と暗号化解除
  • SHA1、SHA256、SHA384、SHA512、および MD5 ハッシュ アルゴリズムを使用した RSA 署名
  • ECC 曲線ECDSA_P256、ECDSA_P384、およびECDSA_P521

Windows で管理者以外のユーザーの秘密キーのアクセス許可を変更または管理するにはどうすればよいですか?

Azure Cloud HSM の KSP または CNG を使用してキーを生成すると、管理者のみが秘密キーへのアクセスを許可されます。 Microsoft 管理コンソール (MMC) を使用してセキュリティ情報を表示したり、アクセス許可を変更したりする際に問題が発生する場合があります。 この動作は意図的です。

既定では、KSP または CNG を使用する場合、新しいキーの秘密キー ファイルへのアクセスは、 SYSTEM と管理者に制限されます。 特定の秘密キー ファイルの管理者以外のユーザーにアクセス権を付与する必要がある場合は、秘密キーのファイル名を特定し、アクセス許可を直接割り当てます。 秘密キーは、Windows for Cloud HSM キーの C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP ディレクトリにあります。

azcloudhsm_ksp_import_key.exe は何をしますか?

azcloudhsm_ksp_import_key.exeを使用して、Cloud HSM KSP で非対称キーをインポートまたは表すことができます。

サポートされているアルゴリズムは、RSA (256 の倍数で 2048 から 4096)、ECDSA、および ECDH です。 ECDSA および ECDH の場合、サポートされる曲線は P256、P384、および P521 です。 Cloud HSM KSP でキーをインポートまたは表した後は、Cloud HSM KSP からのみキーを管理する必要があります。

仮想ネットワーク経由で接続できます。 次のツールを使用します。

  • azcloudhsm_mgmt_util ツールは、操作 (HSM の管理タスク) を実行します。 パーティション暗号化責任者 (PCO) 資格情報が必要です。
  • azcloudhsm_client ツール (クライアント デーモン) は、パーティション暗号化ユーザー (PCU) 資格情報を使用して接続します。

azcloudhsm_client ツールとアプリケーションは、仮想ネットワーク内の同じ VM で実行する必要があります。 その理由は、アプリケーションがリモート プロシージャ コール (RPC) を介してクライアント プロセスに接続するためです。

Azure Cloud HSM サービスは、ポート 443 (azcloudhsm_client 要求)、444 (azcloudhsm_mgmt_util 要求)、445 (サーバー間通信) でリッスンします。

フロントエンド ポートは、TCP over TLS プロトコルの場合、2224 と 2225 です。 これらのポートは、お客様専用です。