管理证书

本页介绍如何使用证书管理器创建 以及管理传输层安全协议 (TLS) (SSL) 证书。 Certificate Manager 支持以下类型的 TLS (SSL) 证书:

  • Google 管理的证书是 Google Cloud 为您获取和管理的证书。您可以使用 Certificate Manager 创建以下类型的 Google 管理的证书:
    • 全球证书
      • 具有负载均衡器授权的 Google 管理的证书
      • 具有 DNS 授权的 Google 管理的证书
      • 使用 Certificate Authority Service (CA Service) 的 Google 管理的证书
    • 区域证书
      • Google 管理的区域级证书
      • 由 Google 管理的区域级证书(适用于 CA Service)
  • 自行管理的证书是您自行获取、预配和续订的证书。

如需详细了解证书,请参阅 Certificate Manager 的运作方式

如需了解如何使用 Certificate Manager 部署证书,请参阅部署概览

如需详细了解本页面中使用的 gcloud CLI 命令,请参阅 Certificate Manager CLI 参考文档

创建具有负载均衡器授权的 Google 管理的证书

如需创建具有负载均衡器授权的 Google 管理的证书,请完成本部分中的步骤。您只能在 global 位置创建具有负载均衡器授权的 Google 管理的证书。

如需为证书指定多个域名,请为证书提供以英文逗号分隔的目标域名列表。

若要完成此任务,您必须在目标 Google Cloud 项目中拥有以下角色之一:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

控制台

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往“证书管理器”

  2. 在随即显示的页面上,选择证书标签页。

  3. 点击添加证书

  4. 输入证书的名称

    该名称在项目中必须是唯一的。

  5. 可选:输入证书的说明。说明 可帮助您稍后识别特定证书。

  6. 对于位置,选择全局

  7. 对于范围,选择默认

  8. 对于证书类型,选择创建 Google 管理的证书

  9. 对于证书授权机构类型,请选择公共

  10. 指定证书的域名。输入以逗号分隔的目标网域列表。此外,每个域名都必须是完全限定域名,例如 myorg.example.com

  11. 对于授权类型,请选择负载均衡器授权

  12. 指定要与证书关联的标签。您可以添加 多个标签(如果需要)。如需添加标签,请点击 添加标签按钮,并为标签指定 keyvalue

  13. 点击创建。确认新证书是否显示在证书列表中。

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES"

替换以下内容:

  • CERTIFICATE_NAME:描述此内容的唯一名称 证书。
  • DOMAIN_NAMES:以英文逗号分隔的目标列表 该证书的网域。每个域名都必须是完全限定的域名 域名,例如 myorg.example.com

Terraform

如需创建 Google 管理的证书,您可以使用 google_certificate_manager_certificate 资源 并使用 managed 代码块。

resource "google_certificate_manager_certificate" "default" {
  name        = "prefixname-rootcert-${random_id.default.hex}"
  description = "Google-managed cert"
  managed {
    domains = ["example.me"]
  }
  labels = {
    "terraform" : true
  }
}

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

API

certificates.create 方法发出 POST 请求,以创建证书,如下所示:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
 }
}

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • CERTIFICATE_NAME:用于描述此证书的唯一名称。
  • DOMAIN_NAME:此配置的目标网域 证书。域名必须是完全限定域名,例如 myorg.example.com

如需大致了解证书部署流程,请参阅部署概览

创建具有 DNS 授权的 Google 代管的证书

如需创建具有 DNS 授权的全球 Google 管理的证书,请执行以下操作:

  1. 创建引用每个 证书覆盖的域名。如需了解相关说明,请参阅创建 DNS 授权
  2. 在目标网域的 DNS 区域中为验证子网域配置有效的 CNAME 记录。有关说明,请参阅 将 CNAME 记录添加到 DNS 配置
  3. 完成本部分中的步骤。

您可以创建 regionalglobal 由 Google 管理的证书。 如需了解如何创建 regional Google 管理的证书,请参阅创建 Google 管理的区域级证书

若要完成此任务,您必须在目标 Google Cloud 项目中拥有以下角色之一:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Manager 页面。

    前往“证书管理器”

  2. 在随即显示的页面上,选择证书标签页。

  3. 点击添加证书

  4. 输入证书的名称

    该名称在项目中必须是唯一的。

  5. 可选:输入证书的说明。说明 可帮助您稍后识别特定证书。

  6. 对于位置,选择全局

  7. 对于范围,选择默认

  8. 对于证书类型,选择创建 Google 管理的证书

  9. 对于证书授权机构类型,请选择公共

  10. 指定证书的域名。输入以逗号分隔的目标网域列表。此外,每个域名都必须是 域名,例如 myorg.example.com

  11. 对于授权类型,选择 DNS 授权。如果 域名具有关联的 DNS 授权,系统会自动获取该授权。如果域名没有关联的 DNS 授权,请执行以下操作:

    1. 点击创建缺少的 DNS 授权以显示“创建 DNS 授权”对话框。
    2. DNS 授权名称字段中,指定 DNS 授权名称。
    3. 点击创建 DNS 授权。 验证 DNS 名称是否与域名相关联。
  12. 指定要与证书关联的标签。您可以添加 多个标签(如果需要)。要添加标签,请点击 添加标签按钮,然后为标签指定 keyvalue

  13. 点击创建。确认新证书是否显示在证书列表中。

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --dns-authorizations="AUTHORIZATION_NAMES"

替换以下内容:

  • CERTIFICATE_NAME:描述此内容的唯一名称 证书。
  • DOMAIN_NAMES:此证书的目标网域的英文逗号分隔列表。每个域名都必须是完全限定域名,例如 myorg.example.com
  • AUTHORIZATION_NAMES:以英文逗号分隔的 您为此证书创建的 DNS 授权的名称。

如需使用通配符域名创建 Google 管理的证书,请使用以下命令。通配符域名证书涵盖给定网域的所有第一级子网域。

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="*.DOMAIN_NAME,DOMAIN_NAME" \
    --dns-authorizations=AUTHORIZATION_NAME

替换以下内容:

  • CERTIFICATE_NAME:用于描述此证书的唯一名称。
  • DOMAIN_NAME:此证书的目标网域。星号句点前缀 (*.) 表示通配符证书。通过 域名必须是完全限定域名,例如 myorg.example.com
  • AUTHORIZATION_NAME:您为此证书创建的 DNS 授权的名称。

Terraform

如需创建具有 DNS 授权的 Google 管理的证书,您可以在 managed 块中使用 google_certificate_manager_certificate 资源dns_authorizations 属性。

resource "google_certificate_manager_certificate" "root_cert" {
  name        = "${local.name}-rootcert-${random_id.tf_prefix.hex}"
  description = "The wildcard cert"
  managed {
    domains = [local.domain, "*.${local.domain}"]
    dns_authorizations = [
      google_certificate_manager_dns_authorization.default.id
    ]
  }
  labels = {
    "terraform" : true
  }
}

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

API

certificates.create 方法发出 POST 请求,以创建证书,如下所示:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "dnsAuthorizations": [
   "projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME",
  ],
 }
}

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • CERTIFICATE_NAME:用于描述此证书的唯一名称。
  • DOMAIN_NAME:此证书的目标网域。星号点前缀 (*.) 表示通配符证书。域名必须是完全限定域名,例如 myorg.example.com
  • AUTHORIZATION_NAME:您为此证书创建的 DNS 授权的名称。

如需独立管理多个项目中的证书,您可以使用按项目授予 DNS 权限。如需了解如何创建具有每个项目 DNS 授权的证书,请参阅创建 DNS 授权

如需大致了解证书部署流程,请参阅部署概览

创建由 CA Service 颁发的 Google 管理的证书

如需创建由您控制的 CA Service 实例颁发的 Google 管理的证书,请完成本部分中的步骤。您可以创建 regionalglobal Google 管理的证书。相关信息 如何创建由 Google 管理的 CA Service,请参阅 创建由 CA 服务颁发的区域级 Google 管理的证书

如需完成此任务,您必须在目标中拥有以下角色 Google Cloud 项目:

如需详细了解本部分中使用的 gcloud CLI 命令,请参阅 Certificate Manager CLI 参考文档

配置 CA Service 与 Certificate Manager 的集成

如果尚未配置,则必须先配置 与 CA Service 集成的证书管理器 如本部分所述。如果目标 CA 池中有效的证书颁发政策存在以下某种情况,证书配置可能会失败:

  • 证书颁发政策已屏蔽请求的证书。在 在这种情况下,您不需要支付费用,因为证书尚未颁发。
  • 此政策对证书应用了不支持的更改 Certificate Manager。在这种情况下,您仍然需要付费,因为 证书已颁发,即使它与 Certificate Manager。

如有任何与发行政策限制相关的问题,请参阅问题排查页面。

如需配置 CA Service 集成,请执行以下操作: Certificate Manager,请执行以下操作:

  1. 向 Certificate Manager 授予从目标 CA 池请求证书的权限:

    1. 使用以下命令在目标 Google Cloud 项目中创建一个 Certificate Manager 服务账号:

      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

    2. 向 Certificate Manager 服务账号授予目标 CA 池中的 Certificate Requester 角色,如下所示:

      gcloud privateca pools add-iam-policy-binding CA_POOL \
          --location REGION \
          --member="serviceAccount:SERVICE_ACCOUNT" \
          --role roles/privateca.certificateRequester
      

      替换以下内容:

      • CA_POOL:目标 CA 池的 ID
      • REGION:目标 Google Cloud 区域
      • SERVICE_ACCOUNT:服务的完整名称 您在第 1 步中创建的账号
  2. 为 CA 池创建证书颁发配置资源:

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Manager 页面。

    前往 Certificate Manager

  2. Issuance Configs(发布配置)标签页上,点击 Create(创建)。

  3. 名称字段中,为证书颁发配置输入一个唯一名称。

  4. 位置部分,选择全球

  5. 可选:在说明字段中,输入发布配置的说明。

  6. Lifetime(有效期)字段中,以天为单位指定已颁发证书的有效期。该值必须介于 21 到 30 天(含)之间。

  7. 轮替窗口百分比中,指定证书续订流程开始时证书有效期的百分比。如需查找有效值的范围,请参阅生命周期和轮替期百分比

  8. 密钥算法列表中,选择生成私钥时要使用的密钥算法。

  9. CA 池列表中,选择要分配给此证书颁发配置的 CA 池的名称。

  10. 标签字段中,指定要与证书关联的标签。如需添加标签,请点击 添加标签,然后为标签指定 keyvalue

  11. 点击创建

gcloud

 gcloud certificate-manager issuance-configs create ISSUANCE_CONFIG_NAME \
     --ca-pool=CA_POOL \
     [--lifetime=CERTIFICATE_LIFETIME] \
     [--rotation-window-percentage=ROTATION_WINDOW_PERCENTAGE] \
     [--key-algorithm=KEY_ALGORITHM]
 

替换以下内容:

  • ISSUANCE_CONFIG_NAME:用于标识此证书颁发配置资源的唯一名称。
  • CA_POOL:CA 的完整资源路径和名称 池。
  • CERTIFICATE_LIFETIME:证书有效期,以 天。有效值为 21 到 30 天,采用标准时长格式。默认值为 30 天 (30D)。此设置为可选设置。
  • ROTATION_WINDOW_PERCENTAGE:触发证书续订时证书生命周期的百分比。要查找有效值范围,请参阅生命周期和轮播窗口百分比。此设置是可选的。
  • KEY_ALGORITHM:用于生成私钥的加密算法。有效值为 ecdsa-p256rsa-2048。 默认值为 rsa-2048。 此设置是可选的。

如需详细了解证书颁发配置资源,请参阅管理证书颁发配置

创建由 CA Service 实例颁发的 Google 管理的证书

按如下所示创建由 CA Service 实例颁发的 Google 管理的证书:

控制台

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往“证书管理器”

  2. 在显示的页面上,选择证书标签页。

  3. 点击添加证书

  4. 输入证书的名称

    该名称在项目中必须是唯一的。

  5. 可选:输入证书的说明。说明 可帮助您稍后识别特定证书。

  6. 对于位置,选择全局

  7. 对于范围,选择默认

  8. 对于证书类型,选择创建 Google 管理的证书

  9. 对于证书授权机构类型,请选择私有

  10. 指定证书的域名。请输入以英文逗号分隔 目标网域的列表。此外,每个域名都必须是完全限定域名,例如 myorg.example.com

  11. 对于证书颁发配置,请选择证书的名称 引用了目标 CA 池的颁发配置资源。

    如需创建签发配置,请点击添加证书签发配置,指定以下详细信息,然后点击创建

    • 名称:证书颁发配置的唯一名称。
    • 说明:发布配置的说明。
    • 生命周期:已颁发证书的生命周期(以天为单位)。该值必须介于 21 天到 30 天(包括这两个数值)之间。
    • 轮替窗口百分比:触发证书续订时证书生命周期的百分比。如需查找有效值的范围,请参阅生命周期和轮替期百分比
    • 密钥算法:生成私钥时使用的密钥算法。
    • CA 池:要分配给此证书颁发配置的 CA 池的名称。
    • 标签:要关联到证书颁发配置的标签。
  12. 指定要与证书关联的标签。您可以添加 多个标签(如果需要)。要添加标签,请点击 添加标签按钮,然后为标签指定 keyvalue

  13. 点击创建。确认新证书是否显示在证书列表中。

gcloud

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --domains="DOMAIN_NAMES" \
    --issuance-config=ISSUANCE_CONFIG_NAME

替换以下内容:

  • CERTIFICATE_NAME:描述此内容的唯一名称 证书。
  • DOMAIN_NAMES:以英文逗号分隔的目标列表 该证书的网域。每个域名都必须是完全限定域名,例如 myorg.example.com
  • ISSUANCE_CONFIG_NAME:引用目标 CA 池的证书颁发配置资源的名称。

API

certificates.create 方法发出 POST 请求,以创建证书,如下所示:

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
 "managed": {
  "domains": ["DOMAIN_NAME"],
  "issuanceConfig": ["ISSUANCE_CONFIG_NAME"],
 }
}

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • CERTIFICATE_NAME:用于描述此证书的唯一名称。
  • DOMAIN_NAME:此配置的目标网域 证书。域名必须是完全限定域名,例如 myorg.example.com
  • ISSUANCE_CONFIG_NAME:引用目标 CA 池的证书颁发配置资源的名称。

如需简要了解证书部署流程,请参阅部署概览

创建由 CA Service 颁发的 Google 管理的区域级证书

如需创建由您控制的 CA Service 实例颁发的 Google 管理的区域级证书,请完成本部分中的步骤。

配置 CA Service 与 Certificate Manager 的集成

配置证书管理器 CA Service,如下所示:

  1. 在目标中创建 Certificate Manager 服务账号 Google Cloud 项目:

    gcloud beta services identity create
        --service=certificatemanager.googleapis.com \
        --project=PROJECT_ID
    

    PROJECT_ID 替换为目标 Google Cloud 项目的 ID。

    该命令会返回创建的服务身份的名称,如以下示例所示:

    service-520498234@gcp-sa-certificatemanager.iam.gserviceaccount.com
    
  2. 向 Certificate Manager 服务账号授予目标 CA 池中的 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 步中创建的服务账号的完整名称。
  3. 为 CA 池创建证书颁发配置资源:

控制台

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往 Certificate Manager

  2. 发行配置标签页上,点击创建

  3. 名称字段中,为证书颁发配置输入一个具有唯一性的名称。

  4. 可选:在说明字段中,输入发布配置的说明。

  5. 对于位置,选择地区级

  6. 区域列表中选择区域。

  7. Lifetime(有效期)字段中,以天为单位指定已颁发证书的有效期。该值必须介于 21 到 30 天(含)之间。

  8. 轮替窗口百分比中,指定证书续订流程开始时证书有效期的百分比。要查找有效值范围,请参阅生命周期和轮播窗口百分比

  9. 密钥算法列表中,选择生成私钥时要使用的密钥算法。

  10. CA 池列表中,选择要分配给此证书颁发配置的 CA 池的名称。

  11. 标签字段中,指定要与证书关联的标签。如需添加标签,请点击 添加标签,然后为标签指定 keyvalue

  12. 点击创建

gcloud

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:证书续订流程开始时,证书在有效期内所占的百分比。如需查找有效值的范围,请参阅生命周期和轮替期百分比
  • KEY_ALGORITHM:用于生成私钥的加密算法。有效值为 ecdsa-p256rsa-2048。 默认值为 rsa-2048。此设置是可选的。
  • DESCRIPTION:证书的说明 颁发配置资源。此设置是可选的。

如需详细了解证书颁发配置资源,请参阅管理证书颁发配置

创建由 CA Service 颁发的 Google 管理的区域级证书

使用上一步中创建的证书颁发配置资源,创建由 CA Service 颁发的区域性 Google 管理的证书:

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Manager 页面。

    前往 Certificate Manager

  2. 在显示的页面上,选择证书标签页。

  3. 点击添加证书

  4. 输入证书的名称

    该名称在项目中必须是唯一的。

  5. 可选:输入证书的说明。说明 可帮助您稍后识别特定证书。

  6. 位置部分,选择区域级

  7. 区域列表中,选择一个区域。

  8. 证书类型部分,选择创建 Google 管理的证书

  9. 对于证书授权机构类型,请选择私有

  10. 指定证书的域名。请输入以英文逗号分隔 目标网域的列表。此外,每个域名都必须是完全限定域名,例如 myorg.example.com

  11. 对于证书颁发配置,请选择证书的名称 引用了目标 CA 池的颁发配置资源。

    如需创建签发配置,请点击添加证书签发配置,指定以下详细信息,然后点击创建

    • 名称:证书颁发配置的唯一名称。
    • 说明:发布配置的说明。
    • 有效期:已颁发证书的有效期(以天为单位)。该值必须介于 21 到 30 天(含)之间。
    • 轮替窗口百分比:证书续订流程开始时证书的生命周期百分比。如需查找有效值的范围,请参阅生命周期和轮替期百分比
    • 密钥算法:生成私钥时使用的密钥算法。
    • CA 池:要分配给此证书颁发配置的 CA 池的名称。
    • 标签:要关联到证书颁发配置的标签。
  12. 指定要与证书关联的标签。您可以添加 多个标签(如果需要)。要添加标签,请点击 添加标签按钮,然后为标签指定 keyvalue

  13. 点击创建。确认新证书是否显示在证书列表中。

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

certificates.create 方法发出 POST 请求,以创建证书,如下所示:

POST /v1/projects/PROJECT_ID/locations/LOCATION/certificates?
{
certificate: {
    name: "/projects/example-project/locations/LOCATION/certificates/my-cert",
    "managed": {
        "domains": ["DOMAIN_NAME"],
        "issuanceConfig": "ISSUANCE_CONFIG_NAME",
              },
             }
}

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • CERTIFICATE_NAME:证书的唯一名称。
  • DOMAIN_NAME:此证书的目标网域。域名必须是完全限定域名,例如 example.comwww.example.com
  • ISSUANCE_CONFIG_NAME:证书的名称 引用了目标 CA 池的颁发配置资源。
  • LOCATION:目标 Google Cloud 位置。您 必须指定与 CA 池相同的位置,证书颁发 和托管式证书

如需简要了解证书部署流程,请参阅 部署概览

创建 Google 管理的区域性证书

如需创建具有 DNS 授权的 Google 管理的证书,请执行以下操作:

  1. 创建引用每个 证书覆盖的域名。如需了解相关说明,请参阅创建 DNS 授权
  2. 在 DNS 区域的 DNS 区域中为验证子网域配置有效的 CNAME 记录 目标网域。如需了解相关说明,请参阅将 CNAME 记录添加到您的 DNS 配置
  3. 完成本部分中的步骤。

您可以创建 regionalglobal 由 Google 管理的证书。 如需了解如何创建 global 由 Google 管理的证书,请参阅 创建具有 DNS 授权的 Google 管理的证书

要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

控制台

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往“证书管理器”

  2. 在随即显示的页面上,选择证书标签页。

  3. 点击添加证书

  4. 输入证书的名称

    该名称在项目中必须是唯一的。

  5. 可选:输入证书的说明。说明 可帮助您稍后识别特定证书。

  6. 位置部分,选择区域级

  7. 区域列表中,选择一个区域。

  8. 证书类型部分,选择创建 Google 管理的证书

  9. 对于证书授权机构类型,请选择公共

  10. 指定证书的域名。输入以逗号分隔的目标网域列表。此外,每个域名都必须是 域名,例如 myorg.example.com

  11. 对于授权类型,选择 DNS 授权。如果域名具有关联的 DNS 授权,系统会自动提取该授权。如果域名没有关联的 DNS 授权,请执行以下操作:

    1. 点击创建缺少的 DNS 授权以显示创建 DNS 授权对话框。
    2. DNS 授权名称字段中,指定 DNS 授权名称。
    3. 点击创建 DNS 授权。 验证 DNS 名称是否已与域名相关联。
  12. 指定要与证书关联的标签。您可以添加 多个标签(如果需要)。要添加标签,请点击 添加标签按钮,然后为标签指定 keyvalue

  13. 点击创建。确认新证书是否显示在证书列表中。

gcloud

运行以下命令:

gcloud certificate-manager certificates create CERTIFICATE_NAME \
   --domains=DOMAIN_NAME \
   --dns-authorizations=AUTHORIZATION_NAME \
   --location=LOCATION

替换以下内容:

  • CERTIFICATE_NAME:证书的唯一名称。
  • DOMAIN_NAME:证书的目标网域。域名必须是完全限定域名,例如 myorg.example.com
  • AUTHORIZATION_NAME:DNS 授权的名称 创建的新证书
  • LOCATION:您创建 Google 代管的证书的位置。

如需创建带有通配符域名的 Google 管理的证书,请使用 。通配符域名 名称证书 涵盖指定网域的所有一级子网域。

gcloud certificate-manager certificates create CERTIFICATE_NAME \
   --domains="*.DOMAIN_NAME,DOMAIN_NAME" \
   --dns-authorizations=AUTHORIZATION_NAME
   --location=LOCATION

替换以下内容:

  • CERTIFICATE_NAME:证书的唯一名称。
  • DOMAIN_NAME:证书的目标网域。星号圆点前缀 (*.) 表示通配符证书。域名必须是完全限定域名,例如 myorg.example.com
  • AUTHORIZATION_NAME:DNS 授权的名称 您为此证书创建的凭据。
  • LOCATION:创建 Google 管理的证书。

上传自行管理的证书

如需上传自行管理的证书,请完成本部分中的步骤。您可以上传以下类型的全球和区域性 X.509 TLS (SSL) 证书:

  • 您选择的第三方证书授权机构 (CA) 生成的证书
  • 由您控制的证书授权机构生成的证书
  • 自签名证书,如创建私钥和证书中所述

您必须上传以下 PEM 编码的文件:

  • 证书 (.crt) 文件
  • 相应的私钥 (.key) 文件

如需了解在负载均衡器上开始分发证书所需的步骤,请参阅部署概览

要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

控制台

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往 Certificate Manager

  2. 在随即显示的页面上,选择证书标签页。

  3. 点击添加证书

  4. 输入证书的名称

    该名称在项目中必须是唯一的。

  5. 可选:输入证书的说明。通过 有助于稍后识别特定证书。

  6. 对于位置,请选择以下任一选项:

    • 全球:选择“全球”,以便在全球范围内使用证书。如果您选择“全球”,请从范围下拉菜单中 菜单中选择以下任一项:
      • 默认:具有默认范围的证书由核心 Google 数据中心提供。
      • 边缘缓存:具有此范围的证书是特殊证书 并且由非核心 Google 数据中心提供。
      • 所有区域:所有区域都提供证书。
    • 区域:选择“区域”,以便在特定区域使用证书。如果您选择“区域级”,请从区域列表中选择一个区域。
  7. 对于证书类型,选择创建自行管理的证书

  8. 对于证书字段,请执行以下任一操作:

    • 点击上传按钮,然后选择您的 PEM 格式 证书文件。
    • 复制并粘贴 PEM 格式证书的内容。内容必须以 -----BEGIN CERTIFICATE----- 开头,并以 -----END CERTIFICATE----- 结尾。
  9. 对于私钥证书字段,请执行以下任一操作:

    • 点击上传按钮,然后选择您的私钥。您的私钥必须采用 PEM 格式,且不受密码保护。
    • 复制并粘贴 PEM 格式的私钥内容。通过 私钥必须以 -----BEGIN PRIVATE KEY----- 开头, 以 -----END PRIVATE KEY----- 结尾。
  10. 指定要与证书关联的标签。您可以添加 多个标签(如果需要)。如需添加标签,请点击 添加标签按钮,并为标签指定 keyvalue

  11. 点击创建。确认新证书是否显示在证书列表中。

gcloud

gcloud certificate-manager certificates create  CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE" \
    [--location="REGION"]

替换以下内容:

  • CERTIFICATE_NAME:用于描述此证书的唯一名称。
  • CERTIFICATE_FILE.crt 证书文件的路径和文件名。
  • PRIVATE_KEY_FILE.key 的路径和文件名 私钥文件
  • REGION:目标 Google Cloud 区域。默认值为 global。 此设置是可选的。

Terraform

如需上传自行管理的证书,您可以将 google_certificate_manager_certificate 资源self_managed 块搭配使用。

API

certificates.create 方法发出 POST 请求,以上传证书,如下所示:

POST /v1/projects/PROJECT_ID/locations/[REGION]/certificates?certificate_id=CERTIFICATE_NAME
{
  self_managed: {
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
  }
}

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • CERTIFICATE_NAME:用于描述此证书的唯一名称。
  • PEM_CERTIFICATE:证书 PEM。
  • PEM_KEY:密钥 PEM。
  • REGION:目标 Google Cloud 区域。默认值为 global。 此设置是可选的。

更新证书

如需更新现有证书,而不修改其在相应证书映射中对网域名的分配,请完成本部分中的步骤。新证书中的 SAN 必须与 现有证书

对于 Google 管理的证书,您只能更新 descriptionlabels 字段。如需更新自行管理的证书,您必须上传以下 PEM 编码文件:

  • 证书 (.crt) 文件
  • 相应的私钥 (.key) 文件

要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:

  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

gcloud

gcloud certificate-manager certificates update CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE" \
    --description="DESCRIPTION" \
    --update-labels="LABELS" \
    [--location="REGION"]

替换以下内容:

  • CERTIFICATE_NAME:目标证书的名称。
  • CERTIFICATE_FILE.crt 证书文件的路径和文件名。
  • PRIVATE_KEY_FILE.key 私钥文件的路径和文件名。
  • DESCRIPTION:此证书的唯一说明值。
  • LABELS:应用于此证书的标签的逗号分隔列表。
  • REGION:目标 Google Cloud 区域。默认值为 global。 此设置是可选的。

API

certificates.patch 方法发出 PATCH 请求,以更新证书,如下所示:

PATCH /v1/projects/PROJECT_ID/locations/[REGION]/certificates/CERTIFICATE_NAME?updateMask=self_managed,labels,description
{
   self_managed: { // Self-managed certificates only
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
  }
  "description": "DESCRIPTION",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE",
  }

}

替换以下内容:

  • PROJECT_ID:目标的 ID Google Cloud 项目。
  • REGION:目标 Google Cloud 区域。默认值为 global。 此设置是可选的。
  • CERTIFICATE_NAME:目标证书的名称。
  • PEM_CERTIFICATE:证书 PEM。
  • PEM_KEY:密钥 PEM。
  • DESCRIPTION:此证书的有意义的说明。
  • LABEL_KEY:应用于此证书的标签键。
  • LABEL_VALUE:应用于此证书的标签值。

列出证书

如需列出由 Certificate Manager 管理的证书,请完成 具体步骤。例如,您可以执行以下查询:

  • 按分配的域名列出证书
  • 列出已过期的证书

若要完成此任务,您必须在目标 Google Cloud 项目中拥有以下角色之一:

  • Certificate Manager Viewer
  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

控制台

如果您的项目中有超过 10000 个受管理的证书 证书管理器,请访问 Google Cloud 控制台中的 Certificate Manager 页面 Google Cloud 控制台无法列出它们。在这种情况下,请使用 gcloud CLI 命令来改为列出您的证书。

  1. 在 Google Cloud 控制台中,前往证书管理器页面。

    前往“证书管理器”

  2. 在显示的页面上,选择证书标签页。此标签页会列出所选项目中由证书管理器管理的所有证书。

传统证书标签页会列出所选项目中的证书 通过 Cloud Load Balancing 直接预配的服务这些证书无法通过证书管理器来管理。如需了解如何管理这些证书,请参阅 Cloud Load Balancing 文档中的以下某一篇文章:

gcloud

gcloud certificate-manager certificates list \
    [--location="REGION"] \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY"

替换以下内容:

  • REGION:目标 Google Cloud 区域;添加到列表 来自所有区域的证书,请使用 - 作为值。默认值为 global。此设置是可选的。
  • FILTER:限制返回的 与特定值相关联。例如,您可以按 以下条件:
    • 到期时间:--filter='expire_time >= "2021-09-01T00:00:00Z"'
    • SAN DNS 名称:--filter='san_dnsnames:"example.com"'
    • 证书状态:--filter='managed.state=FAILED'
    • 证书类型:--filter='managed:*'
    • 标签和创建时间:--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

certificates.list 方法发出 LIST 请求,以列出证书,如下所示:

GET /v1/projects/PROJECT_ID/locations/REGION/certificates?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

替换以下内容:

  • REGION:目标 Google Cloud 区域;添加到列表 来自所有区域的证书,请使用 - 作为值。
  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • FILTER:用于将返回的结果限制为特定值的表达式。
  • PAGE_SIZE:每页返回的结果数。
  • SORT_BY:用于对返回的结果进行排序的字段名称的英文逗号分隔列表。默认排序顺序为升序;用于 降序排序顺序,为字段添加 ~ 前缀。

查看证书状态

如需查看现有证书的状态(包括其配置状态和其他详细信息),请完成本部分中的步骤。

要完成此任务,您必须拥有目标的以下角色之一 Google Cloud 项目:

  • Certificate Manager Viewer
  • Certificate Manager Editor
  • Certificate Manager Owner

如需了解详情,请参阅角色和权限

控制台

如果您的项目中有超过 10000 个受管理的证书 证书管理器,请访问 Google Cloud 控制台中的 Certificate Manager 页面 Google Cloud 控制台无法列出它们。在这种情况下,请改用 gcloud CLI 命令列出您的证书。不过,如果您有指向证书详细信息页面的直接链接,Google Cloud 控制台中的证书管理器页面可以显示这些详细信息。

  1. 在 Google Cloud 控制台中,前往 Certificate Manager 页面。

    前往“证书管理器”

  2. 在显示的页面上,选择证书标签页。

  3. 证书标签页中,找到目标证书,然后点击证书名称。

证书详情页面会显示所选证书的详细信息。

  1. 可选:查看来自 Certificate Manager API 的 REST 响应 对于此证书,请点击等效 REST

  2. 可选:如果证书有关联的证书颁发 Issuance config(发布配置)字段中, 点击关联的证书颁发配置的名称。

    Google Cloud 控制台会显示证书的完整配置 发布配置。

gcloud

gcloud certificate-manager certificates describe CERTIFICATE_NAME \
    [--location="REGION"]

替换以下内容:

  • CERTIFICATE_NAME:目标证书的名称。
  • REGION:目标 Google Cloud 区域。默认值为 global。 此设置是可选的。

API

如需查看证书状态,请向 certificates.get 方法发出 GET 请求,如下所示:

GET /v1/projects/PROJECT_ID/locations/REGION/certificates/CERTIFICATE_NAME

替换以下内容:

  • PROJECT_ID:目标的 ID Google Cloud 项目。
  • REGION:目标 Google Cloud 区域。
  • CERTIFICATE_NAME:目标证书的名称。

删除证书

如需从证书管理器中删除证书,请完成 具体步骤。如需删除证书,您必须先从引用该证书的所有证书映射条目中将其移除;否则删除操作将失败。

若要完成此任务,您必须拥有目标 Google Cloud 项目的“证书管理器所有者”角色。

如需了解详情,请参阅角色和权限

控制台

  1. 在 Google Cloud 控制台中,前往 Certificate Manager 页面。

    前往“证书管理器”

  2. 证书标签页上,选中证书对应的复选框 来删除数据

  3. 点击删除

  4. 在随即显示的对话框中,点击删除进行确认。

gcloud

gcloud certificate-manager certificates delete CERTIFICATE_NAME \
   [--location="REGION"]

替换以下内容:

  • CERTIFICATE_NAME:目标证书的名称。
  • REGION:目标 Google Cloud 区域。默认值为 global。 此设置是可选的。

API

certificates.delete 方法发出 DELETE 请求,以删除证书,如下所示:

DELETE /v1/projects/PROJECT_ID/locations/REGION/certificates/CERTIFICATE_NAME

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:目标 Google Cloud 区域。
  • CERTIFICATE_NAME:目标证书的名称。

后续步骤