中間認証局の作成
中間認証局 (CA) は、アプリや Web サイトなどのエンド・エンティティーに署名して証明書を発行できる下位の認証局です。 IBM Cloud® Secrets Manager では、中間 CA を使用してプライベート証明書を作成できます。
Secrets Manager インスタンスで親 CA (例えば、ルート CA または中間 CA) を既に作成している場合は、それを使用して中間 CA に署名し、発行することができます。 Secrets Manager の外部で親 CA を作成した場合は、その CA を使用して中間 CA に署名することもできます。
インスタンスごとに最大 10 個の中間認証局を作成できます。 インスタンスで使用可能な構成のリストを表示するには、Secrets Manager UI の**「秘密エンジン」>「秘密証明書」**ページに移動します。
開始前に
開始する前に、必要なレベルのアクセス権限を持っていることを確認してください。 インスタンスのエンジン構成を管理するには、マネージャー・サービス・ロールまたはそれ以上が必要です。
サポートされる署名方式
このサービスには次の 2 つのオプションがあります。
署名オプション | 使用する場合 |
---|---|
内部的に符号付き | 既存の親 CA (例えば、ルート CA または別の中間 CA) をトラスト・アンカーとして使用する証明書のチェーンを作成します。 親 CA は、以前に同じ Secrets Manager インスタンスで作成されています。 |
外部署名 | 親 CA をオフラインまたは別の Secrets Manager サービス・インスタンスで作成した場合は、外部 CA を使用して署名し、中間認証局を発行することができます。 |
Terraform でサポートされない構成アクション
以下の操作はサポートされていません。
- CRL のローテーション
- CA の取り消し
UI での内部署名を使用した中間 CA の作成
内部署名付きの中間 CA は、Secrets Manager インスタンスで以前に作成された親 CA をトラスト・アンカーとして使用します。 Secrets Manager UI を使用して、内部署名付きの中間 CA を作成できます。
-
コンソールで、**「メニュー」**アイコン
**>「リソース・リスト」**をクリックします。
-
サービスのリストから、Secrets Manager インスタンスを選択します。
-
シークレット・エンジンページで、プライベート証明書タブをクリックします。
-
「認証局」テーブルで、認証局の作成をクリックして作成ウィザードを開始します。
-
認証局のタイプとオプションを指定します。
- 権限タイプとして中間認証局を選択します。
- 内部署名を選択します。 設定済みの認証局の一覧から、中間CA証明書の発行者として使用する認証局を選択します。
- 認証局を簡単に識別するための名前を入力します。
- この CA に対して生成される証明書の最大存続時間 (TTL) を選択します。 TTL は、CA 証明書が有効である期間を決定します。
- チェーン内に存在できるエンド・エンティティー証明書の最大数を選択します。
- 発行元 CA 証明書の URL をエンド・エンティティー証明書にエンコードするには、URL のエンコードオプションを有効に設定します。
-
ルート CA 証明書のサブジェクト名フィールドを入力します。
-
鍵管理サービスを選択します。 サービス内部でルート認証局鍵を作成する場合はSecrets Managerサービスを選択するか、Hyper Protect Crypto Services(HPCS)を選択します。 HPCSを選択した場合は、以下の作業を行う:
-
インスタンスのドロップダウンリストからHPCSインスタンスを選択するか、HPCSインスタンスのCRNを手動で入力します
-
HPCS で認証するために先に作成した IAM 資格情報の秘密を選択します。
IAM クレデンシャルが一旦 CA 構成に設定されると、後から置き換えることはできない。
-
キーストアドロップダウンリストからHPCSプライベートキーストアを選択するか、キーストアIDを手動で入力します。
-
既存のキーを使用するか、新しいキーを生成するかを選択する。 既存のHPCS秘密鍵を選択する場合、または秘密鍵IDを手動で入力する場合は、公開鍵が存在し、それが秘密鍵ストア内の秘密鍵と同じIDであることを確認してください。
新しい鍵を生成することを選択した場合、その鍵はSecrets Managerによって削除されません。
-
-
CA 証明書の公開鍵と秘密鍵を生成するために使用する鍵アルゴリズムの選択。
-
CA 証明書の証明書失効リスト (CRL) の作成および配布ポイントを有効にするかどうかを決定します。
CRLとは、有効期限が切れる前に発行認証局によって失効された証明書の一覧です。 CRL の一部としてリストされている証明書は、アプリケーションによって信頼できなくなります。
- 中間CAのCRLを各証明書リクエストとともに作成するには、 CRL作成オプション を「有効」に設定します。
- 中間 CA 証明書の失効リストの URL をエンコードするには、CRL 配布ポイントオプションを有効に設定します。
- 生成された CRL の存続時間 (TTL) を選択します。 TTL は、CRL が有効である期間を決定します。
-
選択内容を確認します。 中間 CA を作成するには、作成をクリックします。
これで、この中間 CA をプライベート証明書の生成に選択できます。 既存の構成を変更または削除するには、更新する認証局の行でアクションメニューをクリックします。
APIを使用した内部署名付きの中間CAの作成
内部署名付きの中間 CA は、Secrets Manager インスタンスで以前に作成された親 CA をトラスト・アンカーとして使用します。 Secrets Manager API を使用して、内部署名付きの中間 CA を作成することができます。
ステップ 1: 内部署名付きの中間 CA を作成する
以下の例は、内部署名を使用して中間 CA を作成するために使用できる照会を示しています。 要求本体で、 signing_method
属性の値を internal
に設定します。 issuer
属性を使用して、親認証局を指定します。
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"common_name": "example.com",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"crl_expiry": "72h",
"issuer": "example-root-CA",
"issuing_certificates_urls_encoded": true,
"max_ttl": "26300h",
"signing_method": "internal"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
ご自身のHSMを持参される場合は、リクエストに以下を含めてください:
"crypto_key": {
"label": "my_key",
"allow_generate_key": true,
"provider": {
"type": "hyper_protect_crypto_services",
"instance_crn": "replace_with_hpcs_crn::",
"pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
"private_keystore_id": "replace_with_keystore_id"
}
}
ステップ 2: 中間 CA に署名する
以下の例は、ステップ 1 で作成した中間 CA に署名するために使用できる照会を示しています。
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d -d '{
"action_type": "private_cert_configuration_action_sign_intermediate",
"intermediate_certificate_authority": "example-intermediate-CA"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-root-CA/actions"
UI での外部署名を使用した中間 CA の作成
外部署名付きの中間 CA は、外部 PKI システムからの親 CA、または別の Secrets Manager インスタンスからの親 CA をトラスト・アンカーとして使用します。 親 CA は、ルート CA または中間 CA にすることができます。
ステップ 1: 中間 CA を作成し、要求に署名する
Secrets Manager UI で、外部署名を使用する中間 CA 証明書を作成できます。
-
コンソールで、**「メニュー」**アイコン
**>「リソース・リスト」**をクリックします。
-
サービスのリストから、Secrets Manager インスタンスを選択します。
-
シークレット・エンジンページで、プライベート証明書タブをクリックします。
-
「認証局」テーブルで、認証局の作成をクリックして作成ウィザードを開始します。
-
認証局のタイプとオプションを指定します。
- 権限タイプとして中間認証局を選択します。
- 外部署名を選択します。
- 認証局を簡単に識別するための名前を入力します。
- この CA に対して生成される証明書の最大存続時間 (TTL) を選択します。 TTL は、CA 証明書が有効である期間を決定します。
- 発行元 CA 証明書の URL をエンド・エンティティー証明書にエンコードするには、URL のエンコードオプションを有効に設定します。
-
中間 CA 証明書のサブジェクト名フィールドに入力します。
-
鍵管理サービスを選択します。 サービス内部でルート認証局鍵を作成する場合はSecrets Managerサービスを選択するか、Hyper Protect Crypto Services(HPCS)を選択します。 HPCSを選択した場合は、以下の作業を行う:
-
インスタンスのドロップダウンリストからHPCSインスタンスを選択するか、HPCSインスタンスのCRNを手動で入力します
-
HPCS で認証するために先に作成した IAM 資格情報の秘密を選択します。
IAM クレデンシャルが一旦 CA 構成に設定されると、後から置き換えることはできない。
-
キーストアドロップダウンリストからHPCSプライベートキーストアを選択するか、キーストアIDを手動で入力します。
-
既存のキーを使用するか、新しいキーを生成するかを選択する。 既存のHPCS秘密鍵を選択する場合、または秘密鍵IDを手動で入力する場合は、公開鍵が存在し、それが秘密鍵ストア内の秘密鍵と同じIDであることを確認してください。
新しい鍵を生成することを選択した場合、その鍵はSecrets Managerによって削除されません。
-
-
CA 証明書の公開鍵と秘密鍵を生成するために使用する鍵アルゴリズムの選択。
-
CA 証明書の証明書失効リスト (CRL) の作成および配布ポイントを有効にするかどうかを決定します。
CRL は、スケジュールされた有効期限の前に発行元の認証局によって取り消された証明書のリストです。 CRL の一部としてリストされている証明書は、アプリケーションによって信頼できなくなります。
- 中間CAのCRLを各証明書リクエストとともに作成するには、 CRL作成オプション を「有効」に設定します。
- 中間 CA 証明書の失効リストの URL をエンコードするには、CRL 配布ポイントオプションを有効に設定します。
- 生成された CRL の存続時間 (TTL) を選択します。 TTL は、CRL が有効である期間を決定します。
-
選択内容を確認します。 中間 CA を作成するには、作成をクリックします。
中間 CA が、署名が必要状況でインスタンスの構成のリストに追加されます。 この中間 CA を使用してプライベート証明書を発行するには、外部 PKI システムで作成した親 CA 証明書を使用して署名する必要があります。
ステップ 2: 外部 CA を使用して中間 CA に署名する
Secrets Manager で中間CAを作成し、外部CAによる署名を希望する場合、 証明書署名要求(CSR組織が証明書を取得するために認証局 (CA) に送信する電子メッセージ。 この要求は公開鍵を含んでおり、秘密鍵を使用して署名されます。CA は、独自の秘密鍵を使用して署名した後、証明書を返します。 )が生成されます。 CSR を使用して、中間 CA 証明書に署名して発行することができます。
-
Secrets Manager UI で、**「秘密エンジン」>「秘密証明書」**に移動します。
-
署名する中間 CA の行で、アクションメニュー
> 署名証明書をクリックします。
-
CSR をコピーまたはダウンロードします。
-
CSR を使用して、中間 CA 証明書に署名します。
openssl
などのさまざまなツールから選択して、CSR ファイルに署名することができます。 例えば、以下のopenssl
コマンドは、Secrets Manager からダウンロードした CSR ファイルを取得し、PEM エンコード CA ファイルとそれに関連付けられた秘密鍵を使用して、署名付き CA 証明書を発行します。openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>
このコマンドは、署名付き中間 CA 証明書ファイルを出力します。このファイルを Secrets Manager インスタンスにインポートして、署名プロセスを完了することができます。
ステップ 3: 署名済み中間 CA をインスタンスにインポートする
外部親 CA を使用して中間 CA 証明書に署名した後、Secrets Manager UI を使用してその証明書をインスタンスにインポートできます。
-
Secrets Manager UI で、**「秘密エンジン」>「秘密証明書」**に移動します。
-
署名した中間 CA の行で、アクションメニュー
> 署名証明書をクリックします。
-
前のステップで署名した署名済み中間 CA 証明書ファイルを選択または入力します。
-
サインをクリックして、外部署名プロセスを完了します。
署名された中間 CA が、アクティブ状況でインスタンスの構成のリストに追加されます。 これで、この中間 CA をアプリケーションのプライベート証明書の作成に使用できます。 既存の構成を変更または削除するには、更新する認証局の行でアクションメニュー
をクリックします。
APIを使用した外部署名付き中間CAの作成
外部署名付きの中間 CA は、外部 PKI システムからの親 CA、または別の Secrets Manager インスタンスからの親 CA をトラスト・アンカーとして使用します。 親 CA は、ルート CA または中間 CA にすることができます。 Secrets Manager API を使用して、外部署名付きの中間 CA を作成することができます。
ステップ 1: 中間 CA を作成し、要求に署名する
以下の例は、外部署名を使用して中間 CA を作成するために使用できる照会を示しています。 要求本体で、 signing_method
属性の値を external
に設定します。
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"common_name": "example.com",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"crl_expiry": "72h",
"issuer": "example-root-CA",
"issuing_certificates_urls_encoded": true,
"max_ttl": "26300h",
"signing_method": "external"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
ご自身のHSMを持参される場合は、リクエストに以下を含めてください:
"crypto_key": {
"label": "my_key",
"allow_generate_key": true,
"provider": {
"type": "hyper_protect_crypto_services",
"instance_crn": "replace_with_hpcs_crn::",
"pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
"private_keystore_id": "replace_with_keystore_id"
}
}
応答 JSON データから CSR をコピーします。 CSR 値は、応答の data
属性の値内にネストされます。 また、 get configuration
API を使用して、新しく作成された中間 CA のデータから CSR を取得することもできます。
ステップ 2: 外部 CA を使用して中間 CA に署名する
ステップ 1 でコピーした CSR を使用して、中間 CA 証明書に署名します。 CSR を署名に使用するファイルに入れます。
openssl
などのさまざまなツールから選択して、CSR ファイルに署名することができます。 例えば、次の openssl
コマンドはCSRファイルを取り、PEMエンコードされたCAファイルと関連するプライベートキーを使用して署名されたCA証明書を発行します。
openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>
このコマンドは、署名付き証明書ファイルを出力します。このファイルを中間 CA 構成にインポートして、署名プロセスを完了することができます。
親 CA がルート CA であるか、別の Secrets Manager インスタンスからの中間 CA である場合は、 sign-csr
アクションを使用して CSR に署名できます。 次の例は、CSRに署名するために使用できるクエリを示しています。
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"action_type": "private_cert_configuration_action_sign_csr",
"csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICiDCCAXACAQAwGDEWMBQGA1UEAxMNct5ANo8jybxCwNjHOA==\n-----END CERTIFICATE REQUEST-----"
}' \
"https://{other_instance_ID}.{other_instance_region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-intermediate-CA/actions"
応答から certificate
フィールドの値をコピーして、次のステップで使用します。
ステップ 3: 署名済み中間 CA を中間 CA 構成にインポートする
外部の親CAを使用して中間CA証明書に署名した後、 set-signed
アクションを使用して、それを中間CA構成にインポートすることができます。 次の例は、外部署名付き証明書をインポートする際に使用できるクエリを示しています。
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"action_type": "private_cert_configuration_action_set_signed",
"certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-intermediate-CA/actions"
CLI からの内部署名付き中間 CA の作成
内部署名付きの中間 CA は、Secrets Manager インスタンスで以前に作成された親 CA をトラスト・アンカーとして使用します。 Secrets Manager CLI を使用して、内部署名付きの中間 CA を作成することができます。
ステップ 1: 内部署名付きの中間 CA を作成する
内部署名付きの中間 CA を作成するには、 ibmcloud secrets-manager configuration-create
コマンドを実行します。 構成プロトタイプで、
signing_method
属性の値を internal
に設定します。 issuer
属性を使用して、親認証局を指定します。 例えば、以下のコマンドは、内部署名付きの中間 CA を作成します。
ibmcloud secrets-manager configuration-create
--configuration-prototype='{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"max_ttl": "26300h",
"signing_method": "internal",
"issuer": "example-root-CA",
"crl_expiry": "72h",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"issuing_certificates_urls_encoded": true,
"common_name": "example.com",
"alt_names": [
"alt-name-1","alt-name-2"
],
"ip_sans": "127.0.0.1",
"uri_sans": "https://www.example.com/test",
"other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
"format": "pem",
"private_key_format": "der",
"key_type": "rsa",
"key_bits": 4096,
"exclude_cn_from_sans": false
}'
ご自身のHSMを持参される場合は、リクエストに以下を含めてください:
"crypto_key": {
"label": "my_key",
"allow_generate_key": true,
"provider": {
"type": "hyper_protect_crypto_services",
"instance_crn": "replace_with_hpcs_crn::",
"pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
"private_keystore_id": "replace_with_keystore_id"
}
}
ステップ 2: 中間 CA に署名する
Secrets Manager CLI から中間 CA に署名するには、 ibmcloud secrets-manager configuration-action-create
コマンドを実行して sign-intermediate
アクションを適用します。 --name
コマンド・オプションを使用して、署名認証局 (発行者) の名前を渡します。
ibmcloud secrets-manager configuration-action-create --name example-root-CA
--config-action-prototype='{
"action_type": "private_cert_configuration_action_sign_intermediate",
"intermediate_certificate_authority": "example-intermediate-CA"
}'
CLI からの外部署名付き中間 CA の作成
外部署名付きの中間 CA は、外部 PKI システムからの親 CA、または別の Secrets Manager インスタンスからの親 CA をトラスト・アンカーとして使用します。 親 CA は、ルート CA または中間 CA にすることができます。 Secrets Manager CLI を使用して、外部署名付きの中間 CA を作成することができます。
ステップ 1: 中間 CA を作成し、要求に署名する
Secrets Manager CLI から中間 CA を作成して要求に署名するには、 ibmcloud secrets-manager configuration-create
コマンドを実行します。 構成プロトタイプで、 signing_method
属性の値を external
に設定します。 csr
属性の値を含む完全な応答を取得するには、 --output json
オプションを使用します。 例えば、以下のコマンドは外部署名付きの中間 CA を作成します。
ibmcloud secrets-manager configuration-create --output json
--configuration-prototype='{
"config_type": "private_cert_configuration_intermediate_ca",
"name": "example-intermediate-CA",
"max_ttl": "26300h",
"signing_method": "external",
"crl_expiry": "72h",
"crl_disable": false,
"crl_distribution_points_encoded": true,
"issuing_certificates_urls_encoded": true,
"common_name": "example.com",
"alt_names": [
"alt-name-1","alt-name-2"
],
"ip_sans": "127.0.0.1",
"uri_sans": "https://www.example.com/test",
"other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
"format": "pem",
"private_key_format": "der",
"key_type": "rsa",
"key_bits": 4096,
"exclude_cn_from_sans": false
}'
応答 JSON データから CSR をコピーします。 CSR 値は、応答の data
属性の値内にネストされます。 --output json
オプションを指定して ibmcloud secrets-manager configuration
コマンドを実行することにより、新しく作成された中間 CA のデータを取得することもできます。 以下に例を示します。
ibmcloud secrets-manager configuration --name example-intermediate-CA --output json
ステップ 2: 外部 CA を使用して中間 CA に署名する
ステップ 1 でコピーした CSR を使用して、中間 CA 証明書に署名します。 CSR を署名に使用するファイルに入れます。
openssl
などのさまざまなツールから選択して、CSR ファイルに署名することができます。 例えば、次の openssl
コマンドはCSRファイルを取り、PEMエンコードされたCAファイルと関連するプライベートキーを使用して署名されたCA証明書を発行します。
openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>
このコマンドは、署名付き証明書ファイルを出力します。このファイルを中間 CA 構成にインポートして、署名プロセスを完了することができます。
親 CA がルート CA であるか、別の Secrets Manager インスタンスからの中間 CA である場合は、 sign-csr
アクションを適用して CSR に署名できます。 アクションを適用するには、 ibmcloud secrets-manager configuration-action-create
コマンドを実行します。 certificate
フィールドの値をコマンド出力からコピーして、次のステップで使用します。 例えば、親 CA が別の Secrets Manager インスタンス内の example-root-CA
という名前のルート CA である場合、コマンドは以下のようになります。
ibmcloud secrets-manager configuration-action-create --name example-root-CA --output json
--config-action-prototype='{
"action_type": "private_cert_configuration_action_sign_csr",
"csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICiDCCAXACAQAwGDEWMBQGA1UEAxMNct5ANo8jybxCwNjHOA==\n-----END CERTIFICATE REQUEST-----"
}'
sign-csr
アクションの場合、親 CA が存在する他の Secrets Manager インスタンスをターゲットにする必要があります。 コマンドを実行する前に、環境変数 SECRETS_MANAGER_URL
をエクスポートして、もう一方のインスタンスをターゲットにします。
ステップ 3: 署名済み中間 CA を中間 CA 構成にインポートする
外部親 CA を使用して中間 CA 証明書に署名した後、中間 CA 構成に set-signed
アクションを適用することにより、その証明書を中間 CA 構成にインポートできます。 アクションを適用するには、 ibmcloud secrets-manager configuration-action-create
コマンドを実行します。 以下に例を示します。
ibmcloud secrets-manager configuration-action-create --name example-intermediate-CA
--config-action-prototype='{
"action_type": "private_cert_configuration_action_set_signed",
"certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----"
}'
Terraform による内部署名を使用した中間 CA の作成
内部署名付きの中間 CA は、Secrets Manager インスタンスで以前に作成された親 CA をトラスト・アンカーとして使用します。 Secrets Manager の Terraform を使用して、内部署名付きの中間 CA を作成できます。
以下の例は、内部署名を使用して中間 CA を作成するために使用できる構成を示しています。
resource "ibm_sm_private_certificate_configuration_intermediate_ca" "my_intermediate_ca" {
instance_id = local.instance_id
signing_method = "internal"
name = "example-intermediate-ca"
common_name = "example.com"
issuer = ibm_sm_private_certificate_configuration_root_ca.my_root_ca.name
max_ttl = "180000"
}
自前のHSMを持ち込む場合は、コンフィギュレーションに以下を含めてください:
crypto_key {
label = "my_key"
allow_generate_key = true
provider {
type = "hyper_protect_crypto_services"
instance_crn = "replace_with_hpcs_crn::"
pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
private_keystore_id = "replace_with_keystore_id"
}
}
内部署名を使用する場合、定義された発行者は、新しく作成された中間 CA 証明書に自動的に署名します。
Terraformで外部署名付きの中間CAを作成する
外部署名付きの中間 CA は、外部 PKI システムからの親 CA、または別の Secrets Manager インスタンスからの親 CA をトラスト・アンカーとして使用します。 親 CA は、ルート CA または中間 CA にすることができます。 Secrets Managerの Terraform を使用して、外部署名付きの中間 CA を作成できます。
以下の例は、外部署名を使用して中間 CA を作成するために使用できる構成を示しています。 構成は 3 つのリソースで構成されます。
ibm_sm_private_certificate_configuration_intermediate_ca
リソースは、中間 CA 構成と証明書署名要求を作成します。
ibm_sm_private_certificate_configuration_action_sign_csr
リソースは、別の Secrets Manager インスタンスからのルート CA を使用して CSR に署名します。
ibm_sm_private_certificate_configuration_action_set_signed
リソースは、署名付き証明書を中間 CA リソースにインポートします。
resource "ibm_sm_private_certificate_configuration_intermediate_ca" "my_intermediate_ca" {
instance_id = local.instance_id
name = "example-intermediate-ca"
signing_method = "external"
common_name = "example.com"
max_ttl = "180000"
}
resource "ibm_sm_private_certificate_configuration_action_sign_csr" "my_sign_action" {
instance_id = local.another_instance_id
name = ibm_sm_private_certificate_configuration_root_ca.my_root_ca.name
csr = ibm_sm_private_certificate_configuration_intermediate_ca.my_intermediate_ca.data[0].csr
}
resource "ibm_sm_private_certificate_configuration_action_set_signed" "my_set_signed_action" {
instance_id = local.instance_id
name = ibm_sm_private_certificate_configuration_intermediate_ca.my_intermediate_ca.name
certificate = ibm_sm_private_certificate_configuration_action_sign_csr.my_sign_action.data[0].certificate
}
この例では、ルート CA が別の Secrets Manager インスタンスにあるため、外部署名を使用します。 外部の PKI システムから親 CA を使用するには、 ibm_sm_private_certificate_configuration_action_sign_csr
リソースではなく、別の方法で CSR に署名します。 例えば、 tls
プロバイダーから tls_locally_signed_cert
リソースを使用することができます。
自前のHSMを持ち込む場合は、コンフィギュレーションに以下を含めてください:
crypto_key {
label = "my_key"
allow_generate_key = true
provider {
type = "hyper_protect_crypto_services"
instance_crn = "replace_with_hpcs_crn::"
pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
private_keystore_id = "replace_with_keystore_id"
}
}
UI での中間 CA の取得
中間 CA 値は、 Secrets Manager UI を使用して取得できます。
- 「公開証明書」 シークレット・エンジンで、 「アクション」 メニュー
をクリックして、エンジン構成のオプションのリストを開きます。
- 構成値を表示するには、 「構成の表示」 をクリックします。
- 安全な環境にいることを確認したら、 「確認」 をクリックします。
シークレットの値が 15 秒間表示された後、ダイアログが閉じます。
CLI を使用した中間 CA の取得
中間 CA 値は、 Secrets Manager CLI を使用して取得できます。 以下のコマンド例では、エンジン構成名をご使用の構成の名前に置き換えます。
ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud
{instance_ID}
と {region}
を、ご使用の Secrets Manager サービス・インスタンスに適用される値に置き換えます。 インスタンス固有のエンドポイント URL を見つけるには、Secrets Manager UI の 「エンドポイント」 ページからエンドポイント URL をコピーします。 詳細については、エンドポイント URL の表示を参照してください。
API を使用した中間 CA の取得
中間 CA 値は、 Secrets Manager API を使用して取得できます。 以下の要求例では、エンジン構成名をご使用の構成の名前に置き換えてください。
curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"
{instance_ID}
と {region}
を、ご使用の Secrets Manager サービス・インスタンスに適用される値に置き換えます。 インスタンス固有のエンドポイント URL を見つけるには、Secrets Manager UI の 「エンドポイント」 ページからエンドポイント URL をコピーします。 詳細については、エンドポイント URL の表示を参照してください。
正常な応答は、エンジン構成の値を他のメタデータとともに返します。 必須およびオプションのリクエストパラメータの詳細については 、「シークレットの取得」 を参照してください。