本教程介绍如何使用 Certificate Manager 来部署 由 Google 管理且具有 CA Service 的区域级证书连接到区域级外部应用负载平衡器,或者 区域级内部应用负载平衡器
目标
本教程介绍如何完成以下任务:
- 使用以下命令为 CA Service 创建由 Google 管理的证书 Certificate Manager。
- 使用目标 HTTPS 将证书部署到受支持的负载均衡器 代理。
如需详细了解证书部署流程,请参阅 部署概览。
准备工作
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
请确保您拥有以下角色,以便完成本 教程:
- Certificate Manager Owner:创建和 管理 Certificate Manager 资源。
- Compute Load Balancer Admin:创建和管理 HTTPS 需要 目标代理。
- CA 服务管理员:需要在其中执行操作 CA Service。
详情请参阅以下内容:
- 角色和权限: 证书管理器
- Compute Engine IAM 角色 权限
- 权限和角色 适用于 CA Service
创建 CA 池。您必须创建并启用 此 CA 池中至少有一个 CA。
配置 CA Service 与 Certificate Manager 的集成
配置证书管理器 CA Service,如下所示:
在目标中创建 Certificate Manager 服务账号 Google Cloud 项目:
gcloud beta services identity create \ --service=certificatemanager.googleapis.com \ --project=PROJECT_ID
将
PROJECT_ID
替换为目标的 ID Google Cloud 项目。
该命令会返回已创建服务身份的名称,如 示例:
service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
按如下方式在目标 CA 池中向 Certificate Manager 服务账号授予 CA Service Certificate Requester 角色:
gcloud privateca pools add-iam-policy-binding CA_POOL \ --location LOCATION \ --member "serviceAccount:SERVICE_ACCOUNT" \ --role roles/privateca.certificateRequester
替换以下内容:
CA_POOL
:目标 CA 池的 ID。LOCATION
:目标 Google Cloud 位置。您 必须指定与 CA 池相同的位置,证书颁发 和托管式证书SERVICE_ACCOUNT
:服务账号的全名 您在第 1 步中创建的应用 ID。
为 CA 池创建证书颁发配置资源:
gcloud beta certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \ --ca-pool=CA_POOL \ --location=LOCATION> \ [--lifetime=CERTIFICATE_LIFETIME] \ [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \ [--key-algorithm=KEY_ALGORITHM]
替换以下内容:
ISSUANCE_CONFIG_NAME
: 证书颁发配置资源。CA_POOL
:CA 的完整资源路径和名称 池。LOCATION
:目标 Google Cloud 位置。您 必须指定与 CA 池相同的位置,证书颁发 和托管式证书CERTIFICATE_LIFETIME
:证书有效期,以 天。有效值为 21 至 30 天(采用标准时长格式)。默认值为 30 天 (30D
).此设置是可选的。ROTATION_WINDOW_PERCENTAGE
:相对于 触发续订的证书的整个有效期。默认值为 66。 百分比。您必须设置轮播窗口相对于 证书有效期,以使证书至少续期 7 天 在证书颁发之后至少提前 7 天 过期。此设置是可选的。KEY_ALGORITHM
:用于 生成私钥。有效值为ecdsa-p256
或rsa-2048
。 默认值为rsa-2048
。 此设置是可选的。
如需详细了解证书颁发配置资源,请参阅 管理证书颁发配置。
创建 Google 管理的区域级证书
创建由 Google 管理且 使用证书颁发配置资源的 CA 服务 在上一步中创建的项目:
控制台
在 Google Cloud 控制台中,前往 Certificate Manager 页面。
在显示的页面上,选择证书标签页。
点击添加证书。
输入证书的名称。
该名称在项目中必须是唯一的。
可选:输入证书的说明。说明 可帮助您稍后识别特定证书。
在位置部分,选择区域级。
从区域列表中,选择一个区域。
对于证书类型,选择创建 Google 管理的证书。
对于证书授权机构类型,选择专用。
指定证书的域名。请输入以英文逗号分隔 目标网域的列表。此外,每个域名都必须是 域名,例如
myorg.example.com
。对于证书颁发配置,请选择证书的名称 引用了目标 CA 池的颁发配置资源。
指定要与证书关联的标签。您可以添加 多个标签(如果需要)。要添加标签,请点击 add_box 添加标签按钮,然后为标签指定
key
和value
。点击创建。验证新证书是否显示在证书列表中。
gcloud
运行以下命令:
gcloud beta certificate-manager certificates create CERTIFICATE_NAME \ --domains="DOMAIN_NAMES" \ --issuance-config="ISSUANCE_CONFIG_NAME" \ --location="LOCATION"
替换以下内容:
CERTIFICATE_NAME
:证书的唯一名称。DOMAIN_NAMES
:以英文逗号分隔的目标列表 该证书的网域。每个域名都必须是完全限定的域名 域名,例如myorg.example.com
。ISSUANCE_CONFIG_NAME
:证书的名称 引用了目标 CA 池的颁发配置资源。LOCATION
:目标 Google Cloud 位置。您 必须指定与 CA 池相同的位置,证书颁发 和托管式证书
API
通过向 POST
请求创建证书
certificates.create
方法,如下所示:
POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?certificate_id=CERTIFICATE_NAME" { name: "/projects/example-project/locations/LOCATION/certificates/my-cert", "managed": { "domains": ["DOMAIN_NAME"], "issuanceConfig": "ISSUANCE_CONFIG_NAME", }, }
替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。LOCATION
:目标 Google Cloud 位置。您 必须指定与 CA 池相同的位置,证书颁发 和托管式证书CERTIFICATE_NAME
:证书的唯一名称。DOMAIN_NAME
:此证书的目标网域。 域名必须是完全限定域名,例如example.com
、www.example.com
。ISSUANCE_CONFIG_NAME
:证书的名称 引用了目标 CA 池的颁发配置资源。
有关证书部署流程的概述,请参阅部署 概览。
验证证书是否有效
在将证书部署到负载均衡器之前,请使用以下命令验证证书本身是否处于活跃状态。系统可能需要几分钟
证书状态更改为 ACTIVE
。
gcloud beta certificate-manager certificates describe CERTIFICATE_NAME \ --location=LOCATION
替换以下内容:
CERTIFICATE_NAME
:证书的唯一名称。LOCATION
:目标 Google Cloud 位置。您 必须指定与 CA 池相同的位置,证书颁发 和托管式证书
该命令返回类似于以下内容的输出:
createTime: '2021-10-20T12:19:53.370778666Z' expireTime: '2022-05-07T05:03:49Z' managed: domains: - myorg.example.com issuanceConfig: projects/myproject/locations/mylocation/issuanceConfigs/myissuanceConfig state: ACTIVE name: projects/myproject/locations/mylocation/certificates/mycertificate pemCertificate: | -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- sanDnsnames: - myorg.example.com updateTime: '2021-10-20T12:19:55.083385630Z'
将 Google 管理的区域级证书部署到负载均衡器
如需部署 Google 管理的区域级证书,请创建 HTTPS 目标代理 并将证书附加到其中。
创建 HTTPS 目标代理
如需创建 HTTPS 目标代理并附加证书,请运行以下命令 命令:
gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP \ --region=REGION \ --certificate-manager-certificates=CERTIFICATE_NAME
替换以下内容:
PROXY_NAME
:代理的唯一名称。URL_MAP
:网址映射的名称。您已创建网址映射 创建负载均衡器时创建的凭据。REGION
:您要创建 HTTPS 的区域 目标代理。CERTIFICATE_NAME
:证书的名称。
如需验证目标代理是否已创建,请运行以下命令:
gcloud compute target-https-proxies list
创建转发规则
设置转发规则并完成负载均衡器设置。
- 如果您使用的是区域级外部应用负载平衡器,请参阅 设置具有虚拟机实例组后端的区域级外部应用负载平衡器。
- 如果您使用的是区域级内部应用负载平衡器,请参阅 设置具有虚拟机实例组后端的区域级内部应用负载平衡器。
清理
如需还原您在本教程中所做的更改,请完成以下操作 步骤:
删除 Google 管理的证书:
控制台
在 Google Cloud 控制台中,前往 Certificate Manager 页面。
在 Certificates(证书)标签页上,选中 证书。
点击删除。
在显示的对话框中,点击删除进行确认。
gcloud
gcloud certificate-manager certificates delete CERTIFICATE_NAME \ --location=LOCATION
替换以下内容:
CERTIFICATE_NAME
:证书的名称LOCATION
:目标 Google Cloud 位置
删除证书颁发配置资源:
控制台
在 Google Cloud 控制台中,前往 Certificate Manager 页面。
在 Issuance Configs(发布配置)标签页上,选中 发布配置。
点击删除。
在显示的对话框中,点击删除进行确认。
gcloud
gcloud certificate-manager issuance-configs delete ISSUANCE_CONFIG_NAME \ --location=LOCATION
替换以下内容:
ISSUANCE_CONFIG_NAME
:颁发的名称 配置LOCATION
:目标 Google Cloud 位置
-
请记住,如需停用您在 CA 池中启用的最后一个 CA 或删除引用的 总共 CA 池,您必须先删除引用该 CA 池的每个证书颁发配置资源。
问题排查
有关故障排除步骤,请参阅与 CA Service 实例。