管理证书

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

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

如需详细了解证书,请参阅 Certificate Manager 的工作原理

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

如需详细了解本页面上使用的 gcloud CLI 命令,请参阅证书管理器 CLI 参考文档

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

如需创建具有负载均衡器授权的 Google 管理的证书,请完成本部分中的步骤。您只能在 global 位置创建具有负载均衡器授权的 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. 对于授权类型,选择负载平衡器授权

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

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

gcloud

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

请替换以下内容:

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

Terraform

如需创建 Google 管理的证书,您可以使用带有 managed 块的 google_certificate_manager_certificate 资源

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 授权。如需查看相关说明,请参阅创建 DNS 授权
  2. 为目标网域的 DNS 区域中的验证子网域配置有效的 CNAME 记录。如需了解相关说明,请参阅将 CNAME 记录添加到 DNS 配置
  3. 完成本部分中的步骤。

您可以创建 regionalglobal 由 Google 管理的证书。如需了解如何创建 Google 管理的 regional 证书,请参阅创建 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 块中具有 dns_authorizations 属性的 google_certificate_manager_certificate 资源

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 服务颁发的 Google 管理的证书

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

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

如需详细了解本部分中使用的 gcloud CLI 命令,请参阅证书管理器 CLI 参考文档

配置 CA Service 与 Certificate Manager 的集成

如果您尚未配置 Certificate Manager,请按照本部分所述将其配置为与 CA Service 集成。如果证书颁发政策在目标 CA 池上生效,则证书预配可能会因以下某个原因失败:

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

如需了解与发布政策限制相关的任何问题,请参阅问题排查页面。

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

  • 授予 Certificate Manager 从目标 CA 池请求证书的权限:
    1. 使用以下命令在目标 Google Cloud 项目中创建 Certificate Manager 服务帐号:
     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

    1. 按如下方式在目标 CA 池中向 Certificate Manager 服务帐号授予 Certificate Requester 角色:
     gcloud privateca pools add-iam-policy-binding CA_POOL \
        --location REGION \
        --member="serviceAccount:SERVICE_ACCOUNT" \
        --role roles/privateca.certificateRequester
     

    请替换以下内容:

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

     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:续订触发时的证书在证书有效期内所占的百分比。默认值为 66%。您必须设置相对于证书生命周期的轮替窗口百分比,以确保证书颁发后至少 7 天到过期前至少 7 天进行证书续订。此设置是可选的。
    • KEY_ALGORITHM:用于生成私钥的加密算法。有效值为 ecdsa-p256rsa-2048。默认值为 rsa-2048。 此设置是可选的。

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

创建由您的 CA 服务实例颁发的 Google 管理的证书

按如下方式创建由 CA 服务实例颁发的 Google 管理的证书:

控制台

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

    前往“证书管理器”

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

  3. 点击添加证书

  4. 输入证书的名称

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

  5. 可选:输入证书的说明。该说明有助于您之后识别特定证书。

  6. 对于位置,选择全局

  7. 对于范围,选择默认

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

  9. 对于证书授权机构类型,选择专用

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

  11. 证书颁发配置部分,选择引用目标 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 服务颁发的 Google 管理的区域级证书

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

配置 CA Service 与 Certificate Manager 的集成

按如下方式配置证书管理器以与 CA 服务集成:

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

    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
  1. 按如下方式在目标 CA 池中向 Certificate Manager 服务帐号授予 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 步中创建的服务帐号的全名。
  2. 为 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-p256rsa-2048。默认值为 rsa-2048。此设置是可选的。
    • DESCRIPTION:证书颁发配置资源的说明。此设置是可选的。

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

创建由您的 CA 服务颁发的区域级 Google 管理的证书

使用上一步中创建的证书颁发配置资源创建由您的 CA 服务颁发的地区性 Google 管理的证书:

控制台

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

    前往“证书管理器”

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

  3. 点击添加证书

  4. 输入证书的名称

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

  5. 可选:输入证书的说明。该说明有助于您之后识别特定证书。

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

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

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

  9. 对于证书授权机构类型,选择专用

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

  11. 证书颁发配置部分,选择引用目标 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 授权。如需查看相关说明,请参阅创建 DNS 授权
  2. 为目标网域的 DNS 区域中的验证子网域配置有效的 CNAME 记录。如需了解相关说明,请参阅将 CNAME 记录添加到 DNS 配置
  3. 完成本部分中的步骤。

您可以创建 regionalglobal 由 Google 管理的证书。如需了解如何创建 Google 管理的证书 global,请参阅创建具有 DNS 授权的 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_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. 对于位置,选择以下任一

    • Global:选择“Global”,以便证书可在全球使用。如果您选择“全局”,请从范围下拉菜单中选择以下任一
      • 默认:具有默认范围的证书由核心 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

如需上传自行管理的证书,您可以使用带有 self_managed 块的 google_certificate_manager_certificate 资源

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 必须与现有证书中的 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:目标 Google Cloud 项目的 ID。
  • REGION:目标 Google Cloud 区域。默认值为 global。此设置是可选的。
  • CERTIFICATE_NAME:目标证书的名称。
  • PEM_CERTIFICATE:证书 PEM。
  • PEM_KEY:密钥 PEM。
  • DESCRIPTION:对该证书的有意义的说明。
  • LABEL_KEY:应用于此证书的标签键。
  • LABEL_VALUE:应用于此证书的标签值。

列出证书

如需列出由证书管理器管理的证书,请完成本部分中的步骤。例如,您可以执行以下查询:

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

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

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

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

控制台

如果您的项目中由 Certificate Manager 管理的证书超过 10000 个,则 Google Cloud 控制台中的 Certificate Manager 页面无法列出这些证书。在此类情况下,请改用 gcloud CLI 命令列出证书。

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

    前往“证书管理器”

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

传统证书标签页列出了所选项目中直接通过 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

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

控制台

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

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

    前往“证书管理器”

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

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

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

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

  2. 可选:如果您要查看证书的关联证书颁发配置,请在颁发配置字段中,点击关联的证书颁发配置的名称。

    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:目标 Google Cloud 项目的 ID。
  • REGION:目标 Google Cloud 区域。
  • CERTIFICATE_NAME:目标证书的名称。

删除证书

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

如需完成此任务,您必须拥有目标 Google Cloud 项目的 Certificate Manager Owner 角色。

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

控制台

  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:目标证书的名称。

后续步骤