IBM Cloud Docs
証明書テンプレートの追加

証明書テンプレートの追加

証明書テンプレートは、IBM Cloud® Secrets Manager サービス・インスタンスで作成するプライベート証明書に適用するパラメーターを定義するのに役立ちます。 証明書テンプレートを使用することにより、証明書共通名、代替名、証明書共通名が有効な鍵用途などを制御するためのパラメーターを組み込むことができます。

インスタンスごとに最大 10 個の証明書テンプレートを定義できます。 特定の認証局に使用可能なテンプレートのリストを表示するには、Secrets Manager UI の **「秘密エンジン」>「秘密証明書」**ページに移動します。

インスタンスごとに最大 10 個の証明書テンプレートを定義できます。 特定の認証局で使用可能なテンプレートのリストを取得するには、構成のリスト API を使用できます。

生成される証明書に許可されるドメインの指定

生成する証明書に対して許可されるドメインを指定できます。

  • 「ドメイン設定」 セクションを使用して、テンプレートで許可されるドメインを追加します。 次に、このリストを 「ベア・ドメインを許可」 オプションおよび 「サブドメインを許可」 オプションとともに使用して、これらのドメインと、クライアントが証明書を要求できるドメインとの間のマッチングのタイプを決定します。
  • 「ベア・ドメインを許可」 オプションを有効にして、テンプレートが許可するドメインに一致する証明書をクライアントが要求できるかどうかを指定します。
  • 「サブドメインを許可」 オプションを有効にして、このテンプレートが許可するドメインのサブドメインに一致する証明書をクライアントが要求できるかどうかを示します。 このオプションにはワイルドカード・サブドメインが含まれます。

開始前に

開始する前に、必要なレベルのアクセス権限を持っていることを確認してください。 インスタンスのエンジン構成を管理するには、マネージャー・サービス・ロールまたはそれ以上が必要です。

UI での証明書テンプレートの追加

インスタンスの中間認証局を作成した後は、Secrets Manager UI を使用して証明書テンプレートを作成できます。

  1. コンソールで、**「メニュー」**アイコン「メニュー」アイコン **>「リソース・リスト」**をクリックします。

  2. サービスのリストから、Secrets Manager のインスタンスを選択します。

  3. シークレット・エンジンページで、プライベート証明書タブをクリックします。

  4. 「認証局」表で、秘密証明書の発行 CA として使用する中間認証局の行を展開します。

  5. テンプレートタブをクリックして、既存の証明書テンプレートを表示します。

  6. テンプレートの追加をクリックして、新規テンプレートを関連付けます。

  7. テンプレートを簡単に識別するための名前を指定します。

  8. オプション: 生成された証明書の存続時間 (TTL) を設定します。

    TTL を設定することにより、CA によって発行された証明書の有効期間を決定します。 証明書は、リースの終わりに達すると、自動的に取り消されます。

    証明書テンプレートに定義する TTL または有効期間は、関連付けられた CA に定義されている最大 TTL 値を超えることはできません。 詳しくは、証明書の有効期間の選択を参照してください。

  9. オプション: 生成された証明書の鍵を生成するために使用する鍵アルゴリズムの選択

  10. オプション:生成した証明書に割り当てる 秘密グループインスタンス内に含まれているシークレットが準拠する必要のある環境と制約。 ユーザーをシークレット・グループに関連付けることで、アクセス権限とコラボレーションを有効にできます。 を選択する。

リストから 1 つ以上のシークレット・グループを選択することにより、プライベート証明書の作成をそれらのグループのみに制限します。 シークレット・グループについて詳しくは、シークレットの編成を確認してください。

  1. オプション: 生成されたプライベート証明書の拡張オプションを有効にします。

  2. ドメイン設定: 生成されたプライベート証明書に適用する特定のドメイン、サブドメイン、またはワイルドカードを追加します。

  3. 証明書の役割: 特定の用途のために生成されたプライベート証明書にフラグを立てます。

  4. サブジェクト名: 生成されたプライベート証明書にサブジェクト名パラメーター・フィールドを適用します。

  5. **「追加」**をクリックして、選択を確認します。

API を使用した証明書テンプレートの追加

Secrets Manager API を呼び出すことによって、サービス・インスタンスの証明書テンプレートを作成できます。

以下の例は、証明書テンプレートを作成し、それをインスタンス用に構成されている既存の中間認証局に関連付けるために使用できる照会を示しています。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_template",
  "name": "test-certificate-template",
  "allow_any_name": true,
  "allowed_uri_sans": [
    "https://www.example.com/test"
  ],
  "certificate_authority": "test-intermediate-CA",
  "enforce_hostnames": false,
  "max_ttl": "8760h"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

応答が成功すると、テンプレート構成がサービス・インスタンスに追加されます。

{
  "allow_any_name": true,
  "allow_bare_domains": false,
  "allow_glob_domains": false,
  "allow_ip_sans": true,
  "allow_localhost": true,
  "allow_subdomains": false,
  "allowed_domains": [],
  "allowed_domains_template": false,
  "allowed_other_sans": [],
  "allowed_uri_sans": [
    "https://www.example.com/test"
  ],
  "basic_constraints_valid_for_non_ca": false,
  "certificate_authority": "test-intermediate-CA",
  "client_flag": true,
  "code_signing_flag": false,
  "config_type": "private_cert_configuration_template",
  "created_at": "2022-06-27T11:58:15Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "country": [],
  "email_protection_flag": false,
  "enforce_hostnames": false,
  "ext_key_usage": [],
  "ext_key_usage_oids": [],
  "key_bits": 2048,
  "key_type": "rsa",
  "key_usage": [
    "DigitalSignature",
    "KeyAgreement",
    "KeyEncipherment"
  ],
  "locality": [],
  "max_ttl_seconds": 31536000,
  "name": "test-certificate-template",
  "not_before_duration_seconds": 30,
  "organization": [],
  "ou": [],
  "policy_identifiers": [],
  "postal_code": [],
  "province": [],
  "require_cn": true,
  "secret_type": "private_cert",
  "server_flag": true,
  "street_address": [],
  "ttl_seconds": 43200,
  "updated_at": "2022-10-05T21:33:11Z",
  "use_csr_common_name": true,
  "use_csr_sans": true
}

CLI からの証明書テンプレートの追加

ibmcloud secrets-manager configuration-create コマンドを使用して、サービス・インスタンスの証明書テンプレートを作成できます。

次の例は、証明書テンプレートを作成し、インスタンス用に設定されている既存の中間認証局と関連付けるために使用できるコマンドを示しています。

ibmcloud secrets-manager configuration-create
  --configuration-prototype='{
    "config_type": "private_cert_configuration_template",
    "name": "example-certificate-template",
    "allow_any_name": true,
    "allow_bare_domains": true,
    "allow_glob_domains": true,
    "allow_ip_sans": true,
    "allow_localhost": true,
    "allow_subdomains": false,
    "allow_wildcard_certificates": true,
    "allowed_domains": ["example.com","acme.com"],
    "allowed_domains_template": true,
    "allowed_other_sans": [
      "1.2.3.5.4.3.201.10.4.3;utf8:test@example.com",
      "1.3.6.1.4.1.201.10.5.5;UTF-8:*"
      ],
    "allowed_secret_groups": "d898bb90-82f6-4d61-b5cc-b079b66cfa76",
    "allowed_uri_sans": ["example.com","acme://*"],
    "certificate_authority": "example-intermediate-CA",
    "client_flag": true,
    "code_signing_flag": false,
    "email_protection_flag": false,
    "enforce_hostnames": false,
    "key_bits": 2048,
    "key_type": "rsa",
    "key_usage": [
      "DigitalSignature",
      "KeyAgreement",
      "KeyEncipherment"
    ],
    "max_ttl": "24h",
    "server_flag": true,
    "ttl": "8h",
    "use_csr_common_name": true,
    "use_csr_sans": true
  }'

Terraform を使用した証明書テンプレートの追加

Secrets Managerの Terraform を使用して、サービス・インスタンスの証明書テンプレートを作成できます。

次の例は、証明書テンプレートを作成し、インスタンス用に設定されている既存の中間認証局と関連付けるために使用できる設定を示しています。

    resource "ibm_sm_private_certificate_configuration_template" "test_ca_template" {
        instance_id = local.instance_id
        region = local.region
        name = "test-ca-template"
        certificate_authority = ibm_sm_private_certificate_configuration_intermediate_ca.test_int_ca.name
        allowed_domains = ["example1.com", "my.example.com"]
        allow_any_name = true
    }

必須およびオプションのリクエスト・パラメータの詳細については、設定の追加を参照してください。

UI での証明書テンプレートの取得

証明書テンプレートの値は、 Secrets Manager UI を使用して取得できます。

  1. 「公開証明書」 シークレット・エンジンで、 「アクション」 メニュー 「アクション」アイコン をクリックして、エンジン構成のオプションのリストを開きます。
  2. 構成値を表示するには、 「構成の表示」 をクリックします。
  3. 安全な環境にいることを確認したら、 「確認」 をクリックします。

シークレットの値が 15 秒間表示された後、ダイアログが閉じます。

CLI を使用した証明書テンプレートの取得

証明書テンプレートの値は、 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 を使用した証明書テンプレートの取得

証明書テンプレート値は、 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 の表示を参照してください。

レスポンスに成功すると、他のメタデータとともにエンジン・コンフィギュレーションの値が返される。 必須およびオプションのリクエスト・パラメータについての詳細は、秘密の取得を参照。

次のステップ