本页面介绍如何创建和管理证书映射。
如需详细了解证书映射,请参阅 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 项目的 Editor 角色。
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
或 targetSslProxies
方法发出 POST
请求,以附加证书映射,如下所示:
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) 证书直接附加到代理,然后才能分离证书映射。
为完成此任务,您必须对目标 Google Cloud 项目拥有 Compute Load Balancer Admin 角色。
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"'
如需查看可与证书管理器搭配使用的更多过滤示例,请参阅 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 项目的 Certificate Manager Owner 角色。
如需了解详情,请参阅角色和权限。
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
是目标证书映射的名称。