部署跨区域自行管理的证书


本教程介绍了如何使用证书管理器将全球自行管理的证书部署到跨区域内部应用负载平衡器。

如果您想部署到全球外部负载平衡器或区域负载平衡器,请参阅以下内容:

目标

本教程介绍如何完成以下任务:

  • 将自行管理的证书上传到 Certificate Manager。
  • 使用目标 HTTPS 代理将证书部署到受支持的负载平衡器。

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Certificate Manager APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Compute Engine, Certificate Manager APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

所需的角色

请确保您拥有以下角色,才能完成本教程中的任务:

  • Certificate Manager Owner (roles/certificatemanager.owner)

    创建和管理 Certificate Manager 资源所必需。

  • Compute Load Balancer Admin (roles/compute.loadBalancerAdmin) 或 Compute Network Admin (roles/compute.networkAdmin)

    必须拥有此角色才能创建和管理 HTTPS 目标代理。

详情请参阅以下内容:

创建负载均衡器

本教程假定您已创建并配置了负载平衡器的后端、健康检查、后端服务和网址映射。记下网址映射的名称,因为本教程后面的部分需要它。

如果您尚未创建跨区域内部应用负载平衡器,请参阅设置具有虚拟机实例组后端的跨区域内部应用负载平衡器

创建私钥和证书

如需创建私钥和证书,请执行以下操作:

  1. 使用受信任的第三方证书授权机构 (CA) 颁发证书及其关联的密钥。

  2. 验证证书是否已正确链接且是否受根信任。

  3. 准备以下 PEM 编码文件:

    • 证书文件 (CRT)
    • 相应的私钥文件 (KEY)

如需了解如何请求和验证证书,请参阅创建私钥和证书

将自行管理的证书上传到 Certificate Manager

如需将证书上传到 Certificate Manager,请执行以下操作:

控制台

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

    前往 Certificate Manager

  2. 证书标签页上,点击添加证书

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

  4. 可选:在说明字段中,输入证书的说明。您可以通过说明来识别证书。

  5. 位置部分,选择全球

  6. 对于范围,选择所有地区

  7. 证书类型部分,选择创建自行管理的证书

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

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

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

  11. 点击创建

    新证书会显示在证书列表中。

gcloud

如需创建跨区域自行管理的证书,请使用 certificate-manager certificates create 命令

gcloud certificate-manager certificates create CERTIFICATE_NAME \
    --certificate-file="CERTIFICATE_FILE" \
    --private-key-file="PRIVATE_KEY_FILE" \
    --scope=all-regions

替换以下内容:

  • CERTIFICATE_NAME:证书的名称。
  • CERTIFICATE_FILE:CRT 证书文件的路径和文件名。
  • PRIVATE_KEY_FILE:KEY 私钥文件的路径和文件名。

Terraform

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

API

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

POST /v1/projects/PROJECT_ID/locations/global/certificates?certificate_id=CERTIFICATE_NAME
{
  self_managed: {
    pem_certificate: "PEM_CERTIFICATE",
    pem_private_key: "PEM_KEY",
    scope: "ALL_REGIONS"
  }
}

替换以下内容:

  • PROJECT_ID:Google Cloud 项目的 ID。
  • CERTIFICATE_NAME:证书的名称。
  • PEM_CERTIFICATE:证书 PEM。
  • PEM_KEY:密钥 PEM。

将自行管理的证书部署到负载平衡器

如需部署自行管理的全球证书,请将其直接附加到目标代理。

将证书直接附加到目标代理

您可以将证书附加到新的目标代理或现有目标代理。

如需将证书附加到新的目标代理,请使用 gcloud compute target-https-proxies create 命令

gcloud compute target-https-proxies create PROXY_NAME \
    --url-map=URL_MAP \
    --certificate-manager-certificates=CERTIFICATE_NAME \
    --global

替换以下内容:

  • PROXY_NAME:目标代理的名称。
  • URL_MAP:网址映射的名称。您在创建负载平衡器时创建了网址映射。
  • CERTIFICATE_NAME:证书的名称。

如需将证书附加到现有目标 HTTPS 代理,请使用 gcloud compute target-https-proxies update 命令。如果您不知道现有目标代理的名称,请前往目标代理页面,并记下目标代理的名称。

gcloud compute target-https-proxies update PROXY_NAME \
    --global \
    --certificate-manager-certificates=CERTIFICATE_NAME

创建或更新目标代理后,请运行以下命令进行验证:

gcloud compute target-https-proxies list

清理

为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除上传的证书:

gcloud certificate-manager certificates delete CERTIFICATE_NAME

CERTIFICATE_NAME 替换为目标证书的名称。

如果您不打算使用负载平衡器,请删除负载平衡器及其资源。请参阅清理负载均衡设置

后续步骤