证书映射条目会将证书与目标主机名和目标证书映射相关联。本页面介绍了如何创建和管理证书映射条目。
如需了解详情,请参阅证书映射条目。
创建证书映射条目
您可以创建一个证书映射条目,并最多将四个证书与其相关联。为某个主机名指定多个证书时,我们建议您为每个证书使用不同的密钥算法。例如,您可以为一个证书使用 ECDSA,为另一个证书使用 RSA。将多个证书与单个证书映射条目相关联,也有助于将自行管理的证书迁移到 Google 管理的证书。
如需将多个证书与一个证书映射条目相关联,请提供以英文逗号分隔的证书名称列表。您必须为每个子网域创建单独的证书映射条目。
gcloud
如需创建证书映射条目,请使用 gcloud certificate-manager maps
entries create 命令:
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:您要与证书映射条目相关联的主机名。
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_NAME1","projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME2"]
}
替换以下内容:
PROJECT_ID: Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME:证书映射条目所附加到的证书映射的名称。CERTIFICATE_MAP_ENTRY_NAME:证书映射条目的名称。HOSTNAME:您要与证书映射条目相关联的主机名。CERTIFICATE_NAME1:要与此证书映射条目关联的第一个证书的名称。CERTIFICATE_NAME2:要与此证书映射条目关联的第二个证书的名称。
Terraform
如需创建证书映射条目,您可以使用 google_certificate_manager_certificate_map_entry 资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需了解负载均衡器在握手期间如何选择证书,请参阅证书选择逻辑。
创建主证书映射条目
您可以指定一个主证书,以便在客户端未提供主机名,或者负载均衡器无法将主机名与配置的证书映射条目匹配时,负载均衡器提供该证书。
gcloud
如需创建主证书映射条目,请将 gcloud
certificate-manager maps entries create 命令与 set-primary 标志结合使用:
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_NAME1","projects/PROJECT_ID/locations/global/certificates/CERTIFICATE_NAME2"]
}
替换以下内容:
PROJECT_ID: Google Cloud 项目的 ID。CERTIFICATE_MAP_NAME:证书映射条目所附加到的证书映射的名称。CERTIFICATE_MAP_ENTRY_NAME:证书映射条目的名称。CERTIFICATE_NAME1:要与主证书映射条目关联的第一个证书的名称。CERTIFICATE_NAME2:要与主证书映射条目关联的第二个证书的名称。
如需了解负载均衡器在握手期间如何选择证书,请参阅证书选择逻辑。
更新证书映射条目
更新证书映射条目时,您可以执行以下操作:
- 分配或取消分配证书
- 修改说明
- 修改标签
gcloud
如需更新证书映射条目,请使用 gcloud certificate-manager maps
entries update 命令:
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" }
}
替换以下内容:
CERTIFICATE_MAP_NAME:证书映射条目所附加到的证书映射的名称。CERTIFICATE_MAP_ENTRY_NAME:证书映射条目的名称。PROJECT_ID: Google Cloud 项目的 ID。CERTIFICATE_NAME:证书的名称。DESCRIPTION:此证书映射条目的有意义的说明。LABEL_KEY:应用于相应证书映射条目的标签键。LABEL_VALUE:应用于相应证书映射条目的标签值。
列出证书映射条目
您可以列出、过滤和排序项目的所有已配置的证书映射条目。
控制台
在 Google Cloud 控制台中,前往 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:一种表达式,用于将返回的结果限制为特定值。例如,您可以按以下条件过滤结果:
- 投放状态:
--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:每页要返回的结果数。SORT_BY:一个以英文逗号分隔的name字段列表,用于指定返回结果的排序方式。默认排序顺序是升序;如需降序排序,请在相应字段前面加上波浪号 (~)。
查看证书映射条目的状态
您可以查看证书映射条目的状态。
控制台
在 Google Cloud 控制台中,前往 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中删除关联的证书。您必须手动删除这些证书。
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:证书映射条目的名称。