本页介绍了如何创建和管理证书映射。
如需详细了解证书映射,请参阅 Certificate Manager 的运作方式。
如需了解如何使用 Certificate Manager 部署证书,请参阅部署概览。
如需详细了解本页中使用的 gcloud
命令,请参阅
Certificate Manager CLI 参考文档。
创建证书映射
如需创建证书映射,请完成本部分中的步骤。
要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:
- Certificate Manager Editor
- Certificate Manager Owner
如需了解详情,请参阅角色和权限。
gcloud
gcloud certificate-manager maps create CERTIFICATE_MAP_NAME
替换以下内容:
CERTIFICATE_MAP_NAME
是描述此证书的唯一名称 地图。
Terraform
如需创建证书映射,您可以使用 google_certificate_manager_certificate_map
资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
API
向 certificateMaps.create
方法发出 POST
请求,以创建证书映射,如下所示:
POST /v1/projects/PROJECT_ID/locations/global/certificateMaps?certificate_map_id=CERTIFICATE_MAP_NAME
替换以下内容:
PROJECT_ID
是目标 Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME
是描述此证书的唯一名称 地图。
将证书映射附加到代理
创建证书映射并使用正确配置进行填充后 证书映射条目,则必须 将其连接到所需的代理。Certificate Manager 支持 目标 HTTPS 代理和目标 SSL 代理。如需详细了解 这些代理类型之间的区别,请参阅使用目标代理。
如果有任何现有的 TLS (SSL) 证书直接附加到 代理会优先考虑证书映射引用的证书 通过直接附加的 TLS (SSL) 证书进行验证。
如需完成此任务,您必须具有目标 Google Cloud 项目的编辑者角色。
gcloud
gcloud compute PROXY_TYPE update PROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME"
替换以下内容:
PROXY_TYPE
是目标代理的类型。 支持的类型包括:- 对于目标 HTTP 代理,请使用
target-https-proxies
。 - 对于目标 SSL 代理,请使用
target-ssl-proxies
。
- 对于目标 HTTP 代理,请使用
PROXY_NAME
是目标代理的名称。CERTIFICATE_MAP_NAME
是证书映射的名称,其中包含一个或多个引用所需证书的证书映射条目。
API
向 targetHttpsProxies
发出 POST
请求以附加证书映射
或 targetSslProxies
方法,如下所示:
POST /projects/PROJECT_ID/global/PROXY_TYPE/PROXY_NAME/setCertificateMap { certificateMap: "//certificatemanager.googleapis.com/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME", }
替换以下内容:
PROJECT_ID
是目标 Google Cloud 项目的 ID。PROXY_TYPE
是目标代理的类型。支持的类型为:- 对于目标 HTTP 代理,请使用
targetHttpsProxies
。 - 对于目标 SSL 代理,请使用
targetSslProxies
。
- 对于目标 HTTP 代理,请使用
PROXY_NAME
是目标代理的名称。CERTIFICATE_MAP_NAME
是证书映射的名称 包含引用目标证书的证书映射条目。
从代理中分离证书映射
如需从代理中分离证书映射,请完成本部分中的步骤。
请注意以下几点:
- 如果有任何 TLS (SSL) 证书直接附加到代理,则解除证书映射会导致代理恢复使用这些直接附加的 TLS (SSL) 证书。
- 如果没有直接附加到代理的 TLS (SSL) 证书,则证书映射 无法与代理分离。您必须先附加至少一个 TLS (SSL) 然后才能分离证书映射。
如需完成此任务,您必须拥有 Compute Load Balancer Admin 角色 目标 Google Cloud 项目。
gcloud
gcloud compute PROXY_TYPE update PROXY_NAME \ --clear-certificate-map
替换以下内容:
PROXY_TYPE
是目标代理的类型。 支持的类型包括:- 对于目标 HTTP 代理,请使用
target-https-proxies
。 - 对于目标 SSL 代理,请使用
target-ssl-proxies
。
- 对于目标 HTTP 代理,请使用
PROXY_NAME
是目标代理的名称。
API
使用空 certificateMap
值向 targetHttpsProxies
或 targetSslProxies
方法发出 POST
请求,以分离证书映射,如下所示:
POST /projects/PROJECT_ID/global/PROXY_TYPE/PROXY_NAME/setCertificateMap { certificateMap: "", }
替换以下内容:
PROJECT_ID
是目标 Google Cloud 项目的 ID。PROXY_TYPE
是目标代理的类型。支持的类型为:- 对于目标 HTTP 代理,请使用
targetHttpsProxies
。 - 对于目标 SSL 代理,请使用
targetSslProxies
。
- 对于目标 HTTP 代理,请使用
PROXY_NAME
是目标代理的名称。
更新证书映射
如需更新证书映射的说明,请完成本部分中的步骤。
若要完成此任务,您必须在目标 Google Cloud 项目中拥有以下角色之一:
- Certificate Manager Editor
- Certificate Manager Owner
如需了解详情,请参阅角色和权限。
gcloud
gcloud certificate-manager maps update CERTIFICATE_MAP_NAME \ --description="DESCRIPTION" --update-labels="LABELS"
替换以下内容:
CERTIFICATE_MAP_NAME
是目标证书映射的名称。DESCRIPTION
是此证书映射的新说明。LABELS
是应用于此证书映射的标签的逗号分隔列表。
API
向 certificateMaps.patch
发出 PATCH
请求以更新证书映射
方法:
PATCH /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME?updateMask=labels,description" { "description": "DESCRIPTION", "labels": { "LABEL_KEY": "LABEL_VALUE", }
替换以下内容:
PROJECT_ID
是目标 Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME
是目标证书映射的名称。DESCRIPTION
是此证书映射的新说明。LABEL_KEY
是应用于此证书映射的标签键。LABEL_VALUE
是应用于此证书映射的标签值。
列出证书映射
如需列出当前配置的证书映射,请完成此 部分。
要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:
- Certificate Manager Viewer
- Certificate Manager Editor
- Certificate Manager Owner
如需了解详情,请参阅角色和权限。
gcloud
gcloud certificate-manager maps list \ --filter="FILTER" \ --page-size="PAGE_SIZE" \ --limit="LIMIT" \ --sort-by="SORT_BY"
替换以下内容:
FILTER
是一个表达式,用于将返回的结果限制为特定值。例如,您可以按以下条件过滤结果:- 标签和创建时间:
--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.list
发出 LIST
请求以列出已配置的证书映射
方法:
GET /v1/projects/PROJECT_ID/locations/global/certificateMaps?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY
替换以下内容:
PROJECT_ID
是目标 Google Cloud 项目的 ID。FILTER
是一个表达式,用于将返回的结果限制为特定值。PAGE_SIZE
是每页返回的结果数。SORT_BY
是按字段名称(以英文逗号分隔)排序返回结果的列表。默认排序顺序为升序;用于 降序排序顺序,为所需字段添加~
前缀。
查看证书映射的状态
如需查看证书映射的状态,请完成本部分中的步骤。
若要完成此任务,您必须在目标 Google Cloud 项目中拥有以下角色之一:
- Certificate Manager Viewer
- Certificate Manager Editor
- Certificate Manager Owner
如需了解详情,请参阅角色和权限。
gcloud
gcloud certificate-manager maps describe CERTIFICATE_MAP_NAME
替换以下内容:
CERTIFICATE_MAP_NAME
是目标证书映射的名称。
API
向 certificateMaps.get
发出 GET
请求,以查看证书映射的状态
方法:
GET /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME
替换以下内容:
PROJECT_ID
是目标 Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME
是目标证书映射的名称。
删除证书映射
如需删除证书映射,请完成本部分中的步骤。在删除证书映射之前,您必须先将其与目标代理分离。
如果有任何分配给要删除的证书映射条目, 您必须手动删除它们 然后才能删除地图;否则地图删除失败。
如需完成此任务,您必须拥有 目标 Google Cloud 项目。
如需了解详情,请参阅角色和权限。
gcloud
gcloud certificate-manager maps delete CERTIFICATE_MAP_NAME
替换以下内容:
CERTIFICATE_MAP_NAME
是目标证书映射的名称。
API
向 certificateMaps.delete
方法发出 DELETE
请求,以删除证书映射,如下所示:
DELETE /v1/projects/PROJECT_ID/locations/global/certificateMaps/CERTIFICATE_MAP_NAME
替换以下内容:
PROJECT_ID
是目标 Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME
是目标证书映射的名称。