証明書マップエントリは、証明書をターゲット ホスト名とターゲット証明書マップに関連付けます。このページでは、証明書マップエントリを作成して管理する方法について説明します。
詳細については、証明書マップエントリをご覧ください。
証明書マップエントリを作成する
証明書マップエントリを作成し、最大 4 つの証明書を関連付けることができます。ホスト名に複数の証明書を指定する場合は、証明書ごとに異なる鍵アルゴリズムを使用することをおすすめします。たとえば、1 つの証明書に ECDSA を使用し、別の証明書に RSA を使用できます。複数の証明書を 1 つの証明書マップエントリに関連付けることは、セルフマネージド証明書を Google マネージド証明書に移行する場合にも役立ちます。
複数の証明書を証明書マップエントリに関連付けるには、証明書名のカンマ区切りリストを指定します。サブドメインごとに、個別の証明書マップエントリを作成する必要があります。
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 リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
ロードバランサが handshake 中に証明書を選択する仕組みについては、証明書の選択ロジックをご覧ください。
プライマリ証明書マップ エントリを作成する
クライアントがホスト名を指定しない場合、またはロードバランサが構成済みの証明書マップエントリとホスト名を照合できない場合、ロードバランサが提供するプライマリ証明書を指定できます。
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 中に証明書を選択する仕組みについては、証明書の選択ロジックをご覧ください。
証明書マップエントリを更新する
証明書マップエントリを更新するときは、次の操作を行うことができます。
- 証明書の割り当て、割り当て解除を行う
- 説明を変更する
- ラベルを変更する
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: この証明書マップエントリに適用されるラベル値。
証明書マップエントリの一覧表示
プロジェクトで構成されたすべての証明書マップエントリの一覧表示、フィルタ、並べ替えを行うことができます。
コンソール
Google Cloud コンソールで、[Certificate Manager] ページの [証明書マップ] タブに移動します。
マップエントリを含む証明書マップの名前をクリックします。[証明書マップの詳細] ページには、選択した証明書マップと、関連付けられたマップエントリのリストに関する詳細情報が表示されます。
gcloud
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 メソッドに LIST リクエストを送信して、指定された証明書マップ内の構成済みの証明書マップエントリを一覧表示します。
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フィールドのカンマ区切りリスト。 デフォルトの並べ替え順は昇順です。降順の並べ替え順の場合、フィールドの先頭にチルダ(~)を付けます。
証明書マップエントリの状態を表示する
証明書マップエントリの状態を表示できます。
コンソール
Google Cloud コンソールで、[Certificate Manager] ページの [証明書マップ] タブに移動します。
マップエントリを含む証明書マップの名前をクリックします。[証明書マップの詳細] ページには、選択した証明書マップと、関連付けられたマップエントリのリストに関する詳細情報が表示されます。
[Map entries] セクションで、表示するマップ エントリの名前をクリックします。[マップエントリの詳細] ページに、選択したマップエントリの詳細情報が表示されます。
gcloud
gcloud certificate-manager maps entries describe CERTIFICATE_MAP_ENTRY_NAME \
--map="CERTIFICATE_MAP_NAME"
以下を置き換えます。
CERTIFICATE_MAP_ENTRY_NAME: 証明書マップ エントリの名前。CERTIFICATE_MAP_NAME: 証明書マップエントリが添付されている証明書マップの名前。
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から削除されません。これらの証明書は手動で削除する必要があります。
gcloud
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: 証明書マップ エントリの名前。