证书映射会引用一个或多个证书映射条目,以将特定证书分配给特定主机名。本页介绍了如何创建和管理证书映射。
如需了解详情,请参阅证书映射。
创建证书映射
您可以创建证书映射,以引用与证书关联的证书映射条目。
执行此任务所需的角色
如需执行此任务,您必须在目标 Google Cloud 项目中拥有以下某个 IAM 角色。
- Certificate Manager Editor 角色 (
roles/certificatemanager.editor
) - Certificate Manager Owner 角色 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需创建证书映射,请使用 gcloud certificate-manager maps create
命令:
gcloud certificate-manager maps createCERTIFICATE_MAP_NAME
替换以下内容:
CERTIFICATE_MAP_NAME
:证书映射的名称。
如需创建证书映射,请向 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
:证书映射的名称。
如需创建证书映射,您可以使用 google_certificate_manager_certificate_map
资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
将证书映射附加到代理
使用证书映射条目创建并配置证书映射后,将证书映射附加到目标代理。Certificate Manager 支持全球范围的目标 HTTPS 代理和目标 SSL 代理。如需详细了解这些代理类型之间的差异,请参阅使用目标代理。
如果您将 TLS (SSL) 证书附加到目标代理,同时还通过证书映射附加证书,则代理会使用证书映射中引用的证书,并忽略直接附加的证书。
执行此任务所需的角色
如需执行此任务,您必须在目标 Google Cloud 项目中拥有以下某个 IAM 角色。
- Certificate Manager Editor 角色 (
roles/certificatemanager.editor
)
如需了解详情,请参阅角色和权限。
如需将证书映射附加到目标 HTTPS 代理,请使用 gcloud
compute target-https-proxies update
命令:
gcloud compute target-https-proxies updatePROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME "
如需将证书映射附加到目标 SSL 代理,请使用 gcloud compute
target-ssl-proxies update
命令:
gcloud compute target-ssl-proxies updatePROXY_NAME \ --certificate-map="CERTIFICATE_MAP_NAME "
替换以下内容:
PROXY_NAME
:目标代理的名称。CERTIFICATE_MAP_NAME
:包含引用目标证书的证书映射条目的证书映射的名称。
如需将证书映射附加到目标 HTTPS 代理,请向 targetHttpsProxies
方法发出 POST
请求:
POST /projects/PROJECT_ID /global/targetHttpsProxies/PROXY_NAME /setCertificateMap { certificateMap: "//certificatemanager.googleapis.com/projects/PROJECT_ID /locations/global/certificateMaps/CERTIFICATE_MAP_NAME ", }
如需将证书映射附加到目标 SSL 代理,请向 targetSslProxies
方法发出 POST
请求:
POST /projects/PROJECT_ID /global/targetSslProxies/PROXY_NAME /setCertificateMap { certificateMap: "//certificatemanager.googleapis.com/projects/PROJECT_ID /locations/global/certificateMaps/CERTIFICATE_MAP_NAME ", }
替换以下内容:
PROJECT_ID
:Google Cloud 项目的 ID。PROXY_NAME
:目标代理的名称。CERTIFICATE_MAP_NAME
:包含引用目标证书的证书映射条目的证书映射的名称。
将证书映射与代理分离
在将证书映射与代理分离之前,请注意以下事项:
如果任何 TLS (SSL) 证书直接附加到代理,则解除证书映射会导致代理恢复使用这些证书。
如果没有 TLS (SSL) 证书直接附加到代理,则无法分离证书映射。请先将至少一个 TLS 证书直接附加到代理,然后再分离证书映射。
执行此任务所需的角色
如需执行此任务,您必须在目标 Google Cloud 项目中拥有以下某个 IAM 角色。
- Compute Load Balancer Admin 角色 (
roles/compute.loadBalancerAdmin
)
如需了解详情,请参阅角色和权限。
如需将任何已附加的证书映射与目标 HTTPS 代理分离,请使用 gcloud compute target-https-proxies update
命令:
gcloud compute target-https-proxies updatePROXY_NAME \ --clear-certificate-map
如需将任何已附加的证书映射与目标 SSL 代理分离,请使用 gcloud compute target-ssl-proxies update
命令:
gcloud compute target-ssl-proxies updatePROXY_NAME \ --clear-certificate-map
替换以下内容:
PROXY_NAME
:目标代理的名称。
如需将任何已附加的证书映射与目标 HTTPS 代理分离,请向 targetHttpsProxies
方法发出 POST
请求:
POST /projects/PROJECT_ID /global/targetHttpsProxies/PROXY_NAME /setCertificateMap { certificateMap: "", }
如需将任何已附加的证书映射与目标 SSL 代理分离,请向 targetSslProxies
方法发出 POST
请求:
POST /projects/PROJECT_ID /global/targetSslProxies/PROXY_NAME /setCertificateMap { certificateMap: "", }
替换以下内容:
PROJECT_ID
:Google Cloud 项目的 ID。PROXY_NAME
:目标代理的名称。
更新证书映射
您可以更新证书映射的说明和标签。
执行此任务所需的角色
如需执行此任务,您必须在目标 Google Cloud 项目中拥有以下某个 IAM 角色。
- Certificate Manager Editor 角色 (
roles/certificatemanager.editor
) - Certificate Manager Owner 角色 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需更新证书映射,请使用 gcloud certificate-manager maps update
命令:
gcloud certificate-manager maps updateCERTIFICATE_MAP_NAME \ --description="DESCRIPTION " --update-labels="LABELS "
替换以下内容:
CERTIFICATE_MAP_NAME
:证书映射的名称。DESCRIPTION
:此证书映射的新说明。LABELS
:应用于此证书映射的标签的逗号分隔列表。
如需更新证书映射,请向 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 项目中拥有以下某个 IAM 角色。
- Certificate Manager Viewer 角色 (
roles/certificatemanager.viewer
) - Certificate Manager Editor 角色 (
roles/certificatemanager.editor
) - Certificate Manager Owner 角色 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需列出证书映射,请使用 gcloud certificate-manager maps list
命令:
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
字段的英文逗号分隔列表。默认排序顺序为升序;如需降序排序,请在字段前面加上波浪号 (~
)。
如需列出已配置的证书映射,请向 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
:用于将返回的结果限制为特定值的表达式。例如,如需按标签和创建时间过滤结果,您可以指定:
--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 项目中拥有以下某个 IAM 角色。
- Certificate Manager Viewer 角色 (
roles/certificatemanager.viewer
) - Certificate Manager Editor 角色 (
roles/certificatemanager.editor
) - Certificate Manager Owner 角色 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需查看证书映射的状态,请使用 gcloud certificate-manager maps describe
命令:
gcloud certificate-manager maps describeCERTIFICATE_MAP_NAME
替换以下内容:
CERTIFICATE_MAP_NAME
:证书映射的名称。
如需查看证书映射的详细信息,请向 certificateMaps.get
方法发出 GET
请求:
GET /v1/projects/PROJECT_ID /locations/global/certificateMaps/CERTIFICATE_MAP_NAME
替换以下内容:
PROJECT_ID
:Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME
:证书映射的名称。
删除证书映射
在删除证书映射之前,请执行以下操作:
- 将证书映射与目标代理分离。
- 如果已向映射分配了任何证书映射条目,请删除已分配给证书映射的证书映射条目。
执行此任务所需的角色
如需执行此任务,您必须在目标 Google Cloud 项目中拥有以下某个 IAM 角色。
- Certificate Manager Owner 角色 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需删除证书映射,请使用 gcloud certificate-manager maps delete
命令:
gcloud certificate-manager maps deleteCERTIFICATE_MAP_NAME
替换以下内容:
CERTIFICATE_MAP_NAME
:证书映射的名称。
如需删除证书映射,请向 certificateMaps.delete
方法发出 DELETE
请求:
DELETE /v1/projects/PROJECT_ID /locations/global/certificateMaps/CERTIFICATE_MAP_NAME
替换以下内容:
PROJECT_ID
:Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME
:证书映射的名称。