IBM Cloud Docs
ルート認証局の作成

ルート認証局の作成

IBM Cloud® Secrets Manager を使用すると、ルート認証局および中間認証局 (CA) を作成することにより、独自の公開鍵インフラストラクチャー (PKI) システムを構築して管理することができます。

認証局 (CA) は、SSL/TLS 証明書に署名して発行するエンティティーです。 自己署名証明書を素早く生成する機能を探している場合は、 Secrets Manager を使用して、内部で署名されたルート CA を作成できます。 この CA を証明書チェーンのトラスト・アンカーとして使用できます。 インスタンスのルート CA を作成した後、それを使用して、下位または従属の CA (例えば、サービスで作成する他の中間 CA) に署名できます。

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

開始前に

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

UI でのルート認証局の作成

Secrets ManagerUIを使用して、サービスインスタンスの内部署名付きルート証明機関を作成できます。

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

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

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

  4. 「認証局」テーブルで、認証局の作成をクリックして作成ウィザードを開始します。

  5. 認証局のタイプとオプションを指定します。

    1. 権限タイプとしてルート認証局を選択します。
    2. 認証局を簡単に識別するための名前を入力します。
    3. この CA に対して生成される証明書の最大存続時間 (TTL) を選択します。 TTL は、CA 証明書が有効である期間を決定します。
    4. チェーン内に存在できる従属または下位の中間証明書の最大数を選択します。
    5. 発行元 CA 証明書の URL を中間 CA 証明書にエンコードするには、URL のエンコードオプションを有効に設定します。
  6. ルート CA 証明書のサブジェクト名フィールドを入力します。

  7. 鍵管理サービスを選択する。 サービス内部でルート認証局鍵を作成する場合はSecrets Managerサービスを選択するか、Hyper Protect Crypto Services(HPCS)を選択します。 HPCSを選択した場合は、以下の作業を行う:

    1. インスタンスのドロップダウンリストからHPCSインスタンスを選択するか、HPCSインスタンスのCRNを手動で入力します

    2. HPCS で認証するために先に作成した IAM 資格情報の秘密を選択します。

      IAM クレデンシャルが一旦 CA 構成に設定されると、後から置き換えることはできない。

    3. キーストアドロップダウンリストからHPCSプライベートキーストアを選択するか、キーストアIDを手動で入力します。

    4. 既存のキーを使用するか、新しいキーを生成するかを選択する。 既存のHPCS秘密鍵を選択する場合、または秘密鍵IDを手動で入力する場合は、公開鍵が存在し、それが秘密鍵ストア内の秘密鍵と同じIDであることを確認してください。

      新しい鍵を生成することを選択した場合、その鍵はSecrets Managerによって削除されません。

  8. CA 証明書の公開鍵と秘密鍵を生成するために使用する鍵アルゴリズムの選択

  9. CA 証明書の証明書失効リスト (CRL) の作成および配布ポイントを有効にするかどうかを決定します。

    CRLは、予定された有効期限前に発行認証局によって失効された証明書のリストである。 CRL の一部としてリストされている証明書は、アプリケーションによって信頼できなくなります。

    1. 証明書要求ごとにルートCAのCRLを構築するには、CRL構築オプションを有効に設定します。
    2. ルート CA 証明書の失効リストの URL をエンコードするには、CRL 配布ポイントオプションを有効に設定します。
    3. 生成された CRL の存続時間 (TTL) を選択します。 TTL は、CRL が有効である期間を決定します。
  10. 選択内容を確認します。 ルート CA を作成するには、作成をクリックします。

これで、内部署名を使用した中間 CA の作成時にこのルート CA を選択できます。 既存の構成を変更または削除するには、更新する認証局の行でアクションメニューアクション・アイコンをクリックします。

API を使用したルート認証局の作成

Secrets ManagerAPIを呼び出すことで、サービスインスタンスの内部署名付きルート認証局を作成できます。

以下の例は、ルート認証局を作成するために使用できる照会を示しています。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_root_ca",
  "name": "test-root-CA",
  "common_name": "example.com",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "issuing_certificates_urls_encoded": true,
  "max_ttl": "43830h"
}' \  
  "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"
    }
  }

正常な応答によって、構成がサービス・インスタンスに追加されます。

{
  "common_name": "example.com",
  "config_type": "private_cert_configuration_root_ca",
  "created_at": "2022-06-27T11:58:15Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "data": {
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----",
    "expiration": 1825612535,
    "issuing_ca": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bvad\n-----END CERTIFICATE-----",
    "serial_number": "48:a5:ba:cc:8f:84:f4:95:38:6e:f6:9d:9e:d7:8f:d8:43:d3:55:bd"
  },
  "exclude_cn_from_sans": false,
  "format": "pem",
  "issuing_certificates_urls_encoded": true,
  "max_path_length": -1,
  "max_ttl_seconds": 31536000,
  "name": "test-root-CA",
  "private_key_format": "der",
  "secret_type": "private_cert",
  "updated_at": "2022-10-05T21:33:11Z"
}

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

CLIからのルート認証局の作成

ibmcloud secrets-manager configuration-create コマンドを使用して、サービス・インスタンスの内部署名ルート認証局を作成できます。

次の例は、ルート認証局を作成するために使用できるコマンドを示しています。

ibmcloud secrets-manager configuration-create
  --configuration-prototype='{
    "config_type": "private_cert_configuration_root_ca",
    "name": "example-root-CA",
    "max_ttl": "43830h",
    "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"],
    "ttl": "2190h",
    "format": "pem",
    "private_key_format": "der",
    "key_type": "rsa",
    "key_bits": 4096,
    "max_path_length": -1,
    "exclude_cn_from_sans": false,
    "permitted_dns_domains": ["exampleString"],
    "ou": ["exampleString"],
    "organization": ["exampleString"],
    "country": ["exampleString"],
    "locality": ["exampleString"],
    "province": ["exampleString"],
    "street_address": ["exampleString"],
    "postal_code": ["exampleString"],
    "serial_number": "d9:be:fe:35:ba:09:42:b5:35:ba:09:42:b5"
  }'

自前の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"
    }
  }

Terraformでルート認証局を作成する

Secrets Managerの Terraform を使用して、サービス・インスタンスの内部署名ルート認証局を作成できます。

次の例は、ルート認証局を作成するために使用できる設定を示している。

    resource "ibm_sm_private_certificate_configuration_root_ca" "test_root_ca" {
        instance_id = local.instance_id
        region = local.region
        name = "test-root-ca"
        common_name = "root.example.com"
        max_ttl = "3650d"
        issuing_certificates_urls_encoded = true
    }

自前の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でのルート証明機関の取得

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 の表示を参照してください。

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

次のステップ