この記事は、Azure Cloud HSM サービスの使用時に発生する可能性のある一般的な問題とエラーのトラブルシューティングに役立ちます。
一般的なエラー メッセージ
次のセクションでは、仮想マシン (VM) とハードウェア セキュリティ モジュール (HSM) に関連するエラーなど、一般的なエラーに関する質問に回答します。
azcloudhsm_mgmt_utilを実行すると、"証明書エラー: [証明書署名エラー]" というエラー メッセージが表示されるのはなぜですか?
このエラーは、次の手順を実行するときに発生する可能性があります。
- 別の VM から Azure Cloud HSM デプロイを作成して初期化します。
- 初期化元の管理 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アラートを送信" というエラーメッセージが表示されるのはなぜですか?
このエラーは、次の手順を実行するときに発生する可能性があります。
- 別の VM から Azure Cloud HSM デプロイを作成して初期化します。
- 初期化元の管理 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
を開始するには、別のターミナルで次のいずれかのコマンドを実行します。
Linux (推奨)
DEB または RPM を使用して Azure Cloud HSM SDK をインストールした場合、クライアントはサービスとして実行するように自動的に構成されません。 SDK は、インストール中に、 /etc/systemd/system/azure-cloud-hsm.service
の下にサービス ユニット ファイルを含めます。 azcloudhsm_client
をサービスとして実行できるようにするには、定義済みのazure-cloud-hsm.service
ファイルを使用します。
systemd
構成を再度読み込み、サービスが継続的に実行されるようにします。 次の手順を実行します。
ターミナル ウィンドウを開き、ディレクトリを
/etc/systemd/system
に変更します。このディレクトリには、Cloud HSM サービス ユニット ファイルがあります。cd /etc/systemd/system
Cloud HSM クライアント サービスを開始して有効にします。
sudo systemctl start azure-cloud-hsm.service sudo systemctl enable azure-cloud-hsm.service
Cloud HSM クライアント サービスの状態を確認します。
sudo systemctl status azure-cloud-hsm.service
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 &
Windows (推奨)
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.h
とpkcs11_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.h
とpkcs11_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
を開始するには、サービスとして実行されていることを確認するか、別のターミナルで次のいずれかのコマンドを手動で実行します。
Linux (推奨)
DEB または RPM を使用して Azure Cloud HSM SDK をインストールした場合、クライアントはサービスとして実行するように自動的に構成されません。 SDK は、インストール中に、 /etc/systemd/system/azure-cloud-hsm.service
の下にサービス ユニット ファイルを含めます。 azcloudhsm_client
をサービスとして実行できるようにするには、定義済みのazure-cloud-hsm.service
ファイルを使用します。
systemd
構成を再度読み込み、サービスが継続的に実行されるようにします。 次の手順を実行します。
ターミナル ウィンドウを開き、ディレクトリを
/etc/systemd/system
に変更します。このディレクトリには、Cloud HSM サービス ユニット ファイルがあります。cd /etc/systemd/system
Cloud HSM クライアント サービスを開始して有効にします。
sudo systemctl start azure-cloud-hsm.service sudo systemctl enable azure-cloud-hsm.service
Cloud HSM クライアント サービスの状態を確認します。
sudo systemctl status azure-cloud-hsm.service
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-dev
と zlib1g 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 genpkey
openssl 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 からのみキーを管理する必要があります。
企業ネットワーク (操作/管理タスク) から Cloud HSM に接続するための推奨される方法は何ですか?
仮想ネットワーク経由で接続できます。 次のツールを使用します。
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 です。 これらのポートは、お客様専用です。