証明書マップエントリを管理する

証明書マップエントリは、証明書をターゲット ホスト名とターゲット証明書マップに関連付けます。このページでは、証明書マップエントリを作成して管理する方法について説明します。

詳細については、証明書マップエントリをご覧ください。

証明書マップエントリを作成する

証明書マップエントリを作成し、最大 4 つの証明書を関連付けることができます。ホスト名に複数の証明書を指定する場合は、証明書ごとに異なる鍵アルゴリズムを使用することをおすすめします。たとえば、1 つの証明書に ECDSA を使用し、別の証明書に RSA を使用できます。複数の証明書を 1 つの証明書マップエントリに関連付けることは、セルフマネージド証明書を Google マネージド証明書に移行する場合にも役立ちます。

ロードバランサが handshake 中に証明書を選択する仕組みについては、証明書の選択ロジックをご覧ください。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動し、[証明書マップ] タブをクリックします。

    Certificate Manager に移動

  2. 新しい証明書マップの場合は、 [証明書マップを作成] をクリックします。

    既存の証明書マップの場合は、証明書マップのリストから必要な証明書マップを選択します。

  3. [証明書マップの作成] ページまたは [証明書マップの編集] ページで、 [マップエントリを追加] をクリックします。[マップエントリを追加] ウィンドウが開きます。

  4. [マップ エントリ名] フィールドに、証明書マップ エントリの名前(my-cert-map-entry-01 など)を入力します。

  5. [説明] フィールドに、証明書マップ エントリの説明(My new cert map entry など)を入力します。

  6. 新しい証明書マップエントリを証明書マップのプライマリ エントリにするには、[プライマリ エントリ] を選択します。詳細については、プライマリ証明書マップ エントリを作成するをご覧ください。

    : 証明書マップに関連付けることができるプライマリ証明書マップエントリは 1 つのみです。

  7. [ホスト名] フィールドに、証明書マップエントリに関連付けるホスト名(www.example.com など)を入力します。

    : プライマリ証明書マップエントリの場合、ホスト名はデフォルトで <PRIMARY> として指定され、ホスト名を変更することはできません。

  8. 証明書を証明書マップエントリに関連付けるには、[証明書の選択] をクリックします。既存の証明書を選択するか、[証明書を追加] をクリックして証明書を作成できます。

    : 証明書マップエントリに関連付けることができる証明書は最大で 4 つです。

  9. ラベルを追加して証明書マップ エントリに関連付けるには、[ラベルを追加] をクリックし、ラベルのキーと値を入力します。

  10. [追加] をクリックします。関連付けられた証明書を含む証明書マップエントリが証明書マップに追加されます。

gcloud

複数の証明書を証明書マップエントリに関連付けるには、証明書名のカンマ区切りリストを指定します。サブドメインごとに、個別のマップエントリを作成する必要があります。

証明書マップエントリを作成するには、gcloud certificate-manager maps entries create コマンドを使用します。

gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAMES" \
    --hostname="HOSTNAME"

次のように置き換えます。

  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_NAMES: 証明書マップエントリに関連付ける証明書の名前のカンマ区切りのリスト
  • HOSTNAME: 証明書マップエントリに関連付けるホスト名

API

複数の証明書を証明書マップエントリに関連付けるには、証明書名のカンマ区切りリストを指定します。サブドメインごとに、個別のマップエントリを作成する必要があります。

証明書マップエントリを作成するには、certificateMaps.certificateMapEntries.create メソッドPOST リクエストを送信します。

POST /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries?certificate_map_entry_id=CERTIFICATE_MAP_ENTRY_NAME
{
 hostname: "HOSTNAME"
 certificates: ["projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME1","projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME2"]
}

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • HOSTNAME: 証明書マップエントリに関連付けるホスト名
  • CERTIFICATE_NAME1: 証明書マップエントリに関連付ける最初の証明書の名前
  • CERTIFICATE_NAME2: 証明書マップエントリに関連付ける 2 つ目の証明書の名前

Terraform

証明書マップエントリを作成するには、google_certificate_manager_certificate_map_entry リソースを使用します。

resource "google_certificate_manager_certificate_map_entry" "default" {
  name        = "${local.name}-first-entry-${random_id.tf_prefix.hex}"
  description = "example certificate map entry"
  map         = google_certificate_manager_certificate_map.default.name
  labels = {
    "terraform" : true
  }
  certificates = [google_certificate_manager_certificate.default.id]
  hostname     = local.domain
}

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

プライマリ証明書マップ エントリを作成する

クライアントがホスト名を指定しない場合、またはロードバランサが構成済みの証明書マップ エントリとホスト名を照合できない場合、ロードバランサが提供するプライマリ証明書マップ エントリを指定できます。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動し、[証明書マップ] タブをクリックします。

    Certificate Manager に移動

  2. 新しい証明書マップの場合は、 [証明書マップを作成] をクリックします。

    既存の証明書マップの場合は、証明書マップのリストから必要な証明書マップを選択します。

  3. 新しい証明書マップ エントリを追加する場合は、[証明書マップの作成] ページで、 [マップ エントリを追加] をクリックします。

    既存の証明書マップ エントリを編集するには、[証明書マップの編集] ページのマップ エントリ行の [アクション] 列で アイコンをクリックし、[編集] を選択します。

  4. 証明書マップエントリを証明書マップのプライマリ エントリにするには、[マップエントリを追加] ウィンドウで [プライマリ エントリ] を選択します。

    : 証明書マップに関連付けることができるプライマリ証明書マップエントリは 1 つのみです。

  5. [保存] をクリックします。

gcloud

プライマリ証明書マップエントリを作成するには、set-primary フラグを指定して gcloud certificate-manager maps entries create コマンドを使用します。

gcloud certificate-manager maps entries create CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAMES" \
    --set-primary

次のように置き換えます。

  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_NAMES: 証明書マップエントリに関連付ける証明書の名前のカンマ区切りのリスト

API

証明書マップエントリを作成するには、certificateMaps.certificateMapEntries.create メソッドPOST リクエストを送信します。

POST /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries?certificate_map_entry_id=CERTIFICATE_MAP_ENTRY_NAME
{
   matcher: "PRIMARY",
   certificates: ["projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME1","projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME2"]
}

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • CERTIFICATE_NAME1: プライマリ証明書マップエントリに関連付ける最初の証明書の名前。
  • CERTIFICATE_NAME2: プライマリ証明書マップエントリに関連付ける 2 番目の証明書の名前。

ロードバランサが handshake 中に証明書を選択する仕組みについては、証明書の選択ロジックをご覧ください。

証明書マップエントリを更新する

既存の証明書マップエントリを更新すると、次のことができます。

  • 証明書の割り当て、割り当て解除を行う
  • 説明を変更する
  • ラベルを変更する

Google Cloud コンソールを使用して証明書マップ エントリを更新する場合は、次の操作もできます。

  • マップ エントリの名前を変更します。
  • 他のマップエントリがプライマリ エントリとして割り当てられていない場合は、マップエントリを証明書マップのプライマリ マップエントリとして割り当てます。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動し、[証明書マップ] タブをクリックします。

    Certificate Manager に移動

  2. 証明書マップのリストから、必要な証明書マップをクリックします。[証明書マップの詳細] ページが開きます。

  3. [編集] をクリックします。[証明書マップを編集] ページが開きます。

  4. マップ エントリの行の [アクション] 列で、 アイコンをクリックし、[編集] を選択します。[マップ エントリの編集] ウィンドウが開きます。

  5. [マップ エントリ名] フィールドで、証明書マップ エントリの名前を変更します。

  6. [説明] フィールドで、証明書マップ エントリの説明を変更します。

  7. 証明書マップエントリを証明書マップのプライマリ エントリにするには、[プライマリ エントリ] を選択します。詳細については、プライマリ証明書マップ エントリを作成するをご覧ください。

    : 証明書マップに関連付けることができるプライマリ証明書マップエントリは 1 つのみです。

  8. [ホスト名] フィールドで、証明書マップエントリに関連付けるホスト名を変更します。

    : プライマリ証明書マップエントリの場合、ホスト名はデフォルトで <PRIMARY> として指定され、ホスト名を変更することはできません。

  9. 証明書を証明書マップエントリに関連付けるには、[証明書の選択] をクリックします。既存の証明書を選択するか、[証明書を追加] をクリックして証明書を作成できます。

    : 証明書マップエントリに関連付けることができる証明書は最大で 4 つです。

    証明書の順序を上または下に移動するには、必要な証明書の アイコンまたは アイコンをクリックします。

    証明書を削除するには、必要な証明書の [アイテムを削除] をクリックします。

  10. ラベルを追加して証明書マップ エントリに関連付けるには、[ラベルを追加] をクリックし、ラベルのキーと値を入力します。

    ラベルを削除するには、必要なラベルの [アイテムを削除] をクリックします。

  11. [保存] をクリックします。

gcloud

証明書マップエントリを更新するには、gcloud certificate-manager maps entries update コマンドを使用します。

gcloud certificate-manager maps entries update CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME" \
    --certificates="CERTIFICATE_NAME,CERTIFICATE_NAME" \
    --description="DESCRIPTION" \
    --update-labels="LABELS"

次のように置き換えます。

  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_NAME: 証明書マップエントリに関連付ける証明書の名前
  • DESCRIPTION: 証明書マップエントリの説明
  • LABELS: 証明書マップエントリに適用されたラベルのリスト

API

証明書マップエントリを更新するには、certificateMaps.certificateMapEntries.patch メソッドPATCH リクエストを送信します。

PATCH  /v1/projects/example-project/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries/CERTIFICATE_MAP_ENTRY_NAME?updateMask=labels,description,certificates
{
  "certificates": ["projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME"],
  "description": "DESCRIPTION",
  "labels": { "LABEL_KEY": "LABEL_VALUE" }
}

次のように置き換えます。

  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • PROJECT_ID: Google Cloud プロジェクトの ID
  • CERTIFICATE_NAME: 証明書の名前。
  • DESCRIPTION: 証明書マップエントリの説明
  • LABEL_KEY: 証明書マップエントリに適用されるラベルキー
  • LABEL_VALUE: 証明書マップエントリに適用されたラベル値

証明書マップエントリの一覧表示

証明書マップに関連付けたすべての証明書マップエントリのリストを表示、フィルタ、並べ替えできます。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動し、[証明書マップ] タブをクリックします。

    Certificate Manager に移動

  2. 証明書マップのリストから、必要な証明書マップをクリックします。[証明書マップの詳細] ページが開き、選択した証明書マップと関連するマップエントリのリストに関する詳細情報が表示されます。

gcloud

証明書マップに関連付けられている証明書マップエントリを一覧表示するには、gcloud certificate-manager maps entries list コマンドを使用します。

gcloud certificate-manager maps entries list --map=CERTIFICATE_MAP_NAME \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY"

次のように置き換えます。

  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • FILTER: 返される結果を特定の値に制限する式。

    たとえば、次の条件で結果をフィルタできます。

    • 配信状態: --filter='state=ACTIVE'
    • マッチャー(プライマリとして設定): --filter='-matcher=PRIMARY'
    • ホスト名: --filter='hostname=example.com'
    • 割り当てられた証明書: --filter='certificates:my-cert'
    • ラベルと作成時刻: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Certificate Manager で使用できるその他のフィルタリングの例については、Cloud Key Management Service のドキュメントのリストの結果の並べ替えとフィルタリングをご覧ください。

  • PAGE_SIZE: ページごとに返す結果の数

  • LIMIT: 返す結果の最大数

  • SORT_BY: 返される結果の並べ替えの基準とする name フィールドのカンマ区切りのリスト。デフォルトの並べ替え順は昇順です。降順の並べ替え順の場合、フィールドの先頭にチルダ(~)を付けます。

API

証明書マップに関連付けられている証明書マップエントリを一覧表示するには、certificateMaps.certificateMapEntries.list メソッドGET リクエストを送信します。

GET /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • CERTIFICATE_MAP_NAME: ターゲット証明書マップの名前
  • FILTER: 返される結果を特定の値に制限する式。

    たとえば、次の条件で結果をフィルタできます。

    • 配信状態: --filter='state=ACTIVE'
    • マッチャー(プライマリとして設定): --filter='-matcher=PRIMARY'
    • ホスト名: --filter='hostname=example.com'
    • 割り当てられた証明書: --filter='certificates:my-cert'
    • ラベルと作成時刻: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Certificate Manager で使用できるその他のフィルタリングの例については、Cloud Key Management Service のドキュメントのリストの結果の並べ替えとフィルタリングをご覧ください。

  • PAGE_SIZE: ページごとに返す結果の数

  • SORT_BY: 返される結果の並べ替えの基準とする name フィールドのカンマ区切りのリスト。デフォルトの並べ替え順は昇順です。降順の並べ替え順の場合、フィールドの先頭にチルダ(~)を付けます。

証明書マップエントリの状態を表示する

証明書マップに関連付けられている証明書マップエントリの詳細と状態を表示できます。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動し、[証明書マップ] タブをクリックします。

    Certificate Manager に移動

  2. 証明書マップのリストから、必要な証明書マップをクリックします。[証明書マップの詳細] ページが開き、選択した証明書マップと関連するマップエントリのリストに関する詳細情報が表示されます。

  3. [マップ エントリ] セクションで、表示するマップ エントリの名前をクリックします。[マップエントリの詳細] ページが開き、選択したマップエントリの詳細情報が表示されます。

gcloud

証明書マップに関連付けられている証明書マップエントリの状態を表示するには、gcloud certificate-manager maps entries describe コマンドを使用します。

gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME"

次のように置き換えます。

  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前

出力は次のようになります。

certificates:
createTime: '2021-09-06T10:01:56.229472109Z'
hostname: example.com
name: projects/my-project/locations/global/certificateMaps/myCertMap/certificateMapEntries/myCertMapEntry
state: ACTIVE
updateTime: '2021-09-06T10:01:58.277031787Z'

API

証明書マップに関連付けられている証明書マップエントリの状態を表示するには、certificateMaps.certificateMapEntries.get メソッドGET リクエストを送信します。

GET /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries/CERTIFICATE_MAP_ENTRY_NAME

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前

証明書マップエントリを削除する

証明書マップエントリを削除すると、証明書マップエントリに関連付けられた証明書がターゲット プロキシから切断されます。

証明書マップエントリを削除しても、関連付けられた証明書はGoogle Cloudから削除されません。これらの証明書は手動で削除する必要があります。

コンソール

  1. Google Cloud コンソールで、[Certificate Manager] ページに移動し、[証明書マップ] タブをクリックします。

    Certificate Manager に移動

  2. 証明書マップのリストから、必要な証明書マップをクリックします。[証明書マップの詳細] ページが開きます。

  3. [編集] をクリックします。[証明書マップを編集] ページが開きます。

  4. マップエントリの行の [アクション] 列で、 アイコンをクリックし、 [削除] を選択して、[削除] をクリックします。

gcloud

証明書マップに関連付けられている証明書マップエントリを削除するには、gcloud certificate-manager maps entries delete コマンドを使用します。

gcloud certificate-manager maps entries delete CERTIFICATE_MAP_ENTRY_NAME \
    --map="CERTIFICATE_MAP_NAME"

次のように置き換えます。

  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前

API

証明書マップに関連付けられている証明書マップエントリを削除するには、certificateMaps.certificateMapEntries.delete メソッドDELETE リクエストを送信します。

DELETE /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME/certificateMapEntries/CERTIFICATE_MAP_ENTRY_NAME

次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • CERTIFICATE_MAP_NAME: 証明書マップエントリが関連付けられている証明書マップの名前
  • CERTIFICATE_MAP_ENTRY_NAME: 証明書マップエントリの名前

次のステップ