管理证书映射条目

本部分介绍了如何创建和管理证书映射条目。证书映射条目可将证书与目标主机名和目标证书映射相关联。

如需详细了解证书映射条目,请参阅 Certificate Manager 的运作方式

如需了解如何使用 Certificate Manager 部署证书,请参阅部署概览

如需详细了解本页中使用的 gcloud 命令,请参阅 Certificate Manager CLI 参考文档

创建证书映射条目

要创建证书映射条目并将一个或多个证书与 请完成本部分中的步骤。您必须在证书映射条目中至少指定一个证书。如果您想为给定主机名指定多个证书,则必须确保每个证书都使用不同的加密套件(例如 ECDSA 和 RSA)。

如需将多个证书与证书映射条目相关联,请提供要与该条目相关联的以英文逗号分隔的证书名称列表。您最多可以将 4 个证书与单个证书映射条目相关联。对于每个子网域,您必须创建一个单独的证书映射条目。

要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

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 资源

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 命令

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 是要与此证书映射条目关联的证书的名称。

如需了解负载均衡器如何在握手期间选择证书,请参阅证书选择逻辑

创建主证书映射条目

如果客户端未提供主机名,或者提供的主机名与负载均衡器无法匹配的任何配置的证书映射条目,您可以指定负载均衡器提供的主证书。

要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

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 是您要关联的证书的名称 替换为此证书映射条目。

如需了解负载均衡器如何在握手期间选择证书, 请参阅证书选择逻辑

更新证书映射条目

如需更新证书映射条目,请完成本部分中的步骤。您可以按如下方式更新证书映射条目:

  • 分配或取消分配证书
  • 修改说明
  • 修改标签

要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

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 Viewer
  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

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 Viewer
  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

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 项目。

如需了解详情,请参阅角色和权限

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 是目标证书映射条目的名称。

后续步骤