このセクションでは、証明書マップ エントリの作成と管理について説明します。証明書マップエントリは、証明書をターゲット ホスト名とターゲット 証明書マップに関連付けます。
証明書マップエントリの詳細については、Certificate Manager の仕組みをご覧ください。
Certificate Manager を使用して証明書をデプロイする方法については、デプロイの概要をご覧ください。
このページで使用されている gcloud
コマンドの詳細については、Certificate Manager CLI のリファレンスをご覧ください。
証明書マップ エントリを作成する
証明書マップ エントリを作成し、1 つ以上の証明書を関連付けるには、このセクションの手順を完了します。証明書マップ エントリ内に少なくとも 1 つの証明書を指定する必要があります。特定のホスト名に複数の証明書を指定する場合、各証明書に異なる暗号スイート(ECDSA や RSA など)を使用している場合にのみ指定できます。
複数の証明書を証明書マップ エントリに関連付けるには、エントリに関連付ける証明書名のカンマ区切りリストを指定します。1 つの証明書マップエントリに関連付けることができる証明書は最大で 4 つです。 サブドメインごとに個別の証明書マップ エントリを作成する必要があります。
このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。
- Certificate Manager 編集者
- Certificate Manager オーナー
詳細については、ロールと権限をご覧ください。
gcloud
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
: この証明書マップエントリに関連付けるホスト名
Terraform
証明書マップ エントリを作成するには、google_certificate_manager_certificate_map_entry
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
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_NAME"], }
以下のように置き換えます。
PROJECT_ID
は、ターゲットの Google Cloud プロジェクトの ID です。CERTIFICATE_MAP_ENTRY_NAME
は、この証明書マップエントリを説明する一意の名前です。CERTIFICATE_MAP_NAME
は、この証明書マップエントリの接続先である証明書マップの名前です。HOSTNAME
: この証明書マップエントリに関連付けるホスト名CERTIFICATE_NAME
は、この証明書マップエントリに関連付ける証明書の名前です。
ロードバランサが handshake 中に証明書を選択する仕組みについては、証明書の選択ロジックをご覧ください。
プライマリ証明書マップエントリを作成する
クライアントがホスト名を指定しない場合、またはロードバランサが構成済みの証明書マップ エントリと一致しないホスト名を指定する場合、ロードバランサが提供するプライマリ証明書を指定できます。
このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。
- Certificate Manager 編集者
- Certificate Manager オーナー
詳細については、ロールと権限をご覧ください。
gcloud
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_NAME"], }
以下のように置き換えます。
PROJECT_ID
は、ターゲットの Google Cloud プロジェクトの ID です。CERTIFICATE_MAP_ENTRY_NAME
は、この証明書マップエントリを説明する一意の名前です。CERTIFICATE_MAP_NAME
は、この証明書マップエントリの接続先である証明書マップの名前です。CERTIFICATE_NAME
は、この証明書マップエントリに関連付ける証明書の名前です。
ロードバランサが handshake 中に証明書を選択する仕組みについては、証明書の選択ロジックをご覧ください。
証明書マップエントリを更新する
証明書マップ エントリを更新するには、このセクションの手順を完了します。証明書マップエントリは次のように更新できます。
- 証明書の割り当て、割り当て解除
- 説明を変更する
- ラベルを変更する
このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。
- Certificate Manager 編集者
- Certificate Manager オーナー
詳細については、ロールと権限をご覧ください。
gcloud
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" } }
以下のように置き換えます。
PROJECT_ID
は、ターゲットの Google Cloud プロジェクトの ID です。CERTIFICATE_MAP_NAME
は、この証明書マップエントリの接続先である証明書マップの名前です。CERTIFICATE_MAP_ENTRY_NAME
は、この証明書マップエントリを説明する一意の名前です。CERTIFICATE_NAME
は、この証明書マップエントリに関連付ける証明書の名前です。DESCRIPTION
は、この証明書マップエントリのわかりやすい説明です。LABEL_KEY
は、この証明書マップエントリに適用されるラベルキーです。LABEL_VALUE
は、この証明書マップエントリに適用されるラベル値です。
証明書マップエントリの一覧表示
ターゲット証明書マップ内で現在構成されている証明書マップエントリを一覧表示するには、このセクションの手順を行います。
このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。
- Certificate Manager 閲覧者
- Certificate Manager 編集者
- 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
は、返される結果を特定の値に制限する式です。PAGE_SIZE
はページごとに返す結果の数です。SORT_BY
は、返される結果の並べ替えの基準とするフィールド名のカンマ区切りリストです。デフォルトの並べ替え順序は昇順です。降順で並べ替えるには、目的のフィールドの前に~
という接頭辞を付けます。
証明書マップエントリの状態を表示する
証明書マップ エントリの状態を表示するには、このセクションの手順を完了します。
このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する次のいずれかのロールが必要です。
- Certificate Manager 閲覧者
- Certificate Manager 編集者
- Certificate Manager オーナー
詳細については、ロールと権限をご覧ください。
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 から削除するには、手動で削除する必要があります。
このタスクを完了するには、ターゲットの Google Cloud プロジェクトに対する Certificate Manager 所有者のロールが必要です。
詳細については、ロールと権限をご覧ください。
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
は、ターゲット証明書マップエントリの名前です。