本教程介绍了如何使用 Certificate Manager 将全球自行管理的证书部署到跨区域内部应用负载平衡器。
如果您想部署到全球外部负载平衡器或区域级负载平衡器,请参阅以下内容:
目标
本教程介绍如何完成以下任务:
- 将自行管理的证书上传到 Certificate Manager。
- 使用目标 HTTPS 代理将证书部署到受支持的负载均衡器。
准备工作
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Certificate Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Install the Google Cloud CLI.
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init Certificate Manager Owner (
roles/certificatemanager.owner)创建和管理 Certificate Manager 资源时需要此权限。
Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin) 或 Compute Network Admin (roles/compute.networkAdmin)创建和管理 HTTPS 目标代理时需要此权限。
- Certificate Manager 的角色和权限。
- Compute Engine 的 Compute Engine IAM 角色和权限。
使用可信的第三方证书授权机构 (CA) 颁发证书及其关联的密钥。
验证证书是否已正确链接并受根信任。
准备以下 PEM 编码的文件:
- 证书文件 (CRT)
- 相应的私钥文件 (KEY)
在 Google Cloud 控制台中,前往 Certificate Manager 页面。
在证书标签页上,点击添加证书。
在证书名称字段中,输入证书的唯一名称。
可选:在说明字段中,输入证书的说明。通过说明,您可以识别证书。
在位置部分,选择全球。
对于范围,选择所有地区。
在证书类型部分,选择创建自行管理的证书。
对于证书字段,请执行以下任一操作:
- 点击上传按钮,然后选择您的 PEM 格式的证书文件。
- 复制并粘贴 PEM 格式证书的内容。内容必须以
-----BEGIN CERTIFICATE-----开头,并以-----END CERTIFICATE-----结尾。
对于私钥证书字段,请执行以下任一操作:
- 点击上传按钮,然后选择您的私钥。您的私钥必须采用 PEM 格式,且不受密码保护。
- 复制并粘贴 PEM 格式的私钥内容。私钥必须以
-----BEGIN PRIVATE KEY-----开头,并以-----END PRIVATE KEY-----结尾。
在标签字段中,指定要与证书关联的标签。如需添加标签,请点击添加标签,并为标签指定键和值。
点击创建。
新证书会显示在证书列表中。
CERTIFICATE_NAME:证书的名称。CERTIFICATE_FILE:CRT 证书文件的路径和文件名。PRIVATE_KEY_FILE:KEY 私钥文件的路径和文件名。PROJECT_ID: Google Cloud 项目的 ID。CERTIFICATE_NAME:证书的名称。PEM_CERTIFICATE:证书 PEM。PEM_KEY:密钥 PEM。PROXY_NAME:目标代理的名称。URL_MAP:网址映射的名称。您在创建负载均衡器时创建了网址映射。CERTIFICATE_NAME:证书的名称。
所需的角色
请确保您拥有以下角色,以便完成本教程中的任务:
详情请参阅以下内容:
创建负载均衡器
本教程假定您已创建并配置负载平衡器的后端、健康检查、后端服务和网址映射。记下网址映射的名称,因为本教程后面的部分需要它。
如果您尚未创建跨区域内部应用负载平衡器,请参阅设置具有虚拟机实例组后端的跨区域内部应用负载平衡器。
创建私钥和证书
如需创建私钥和证书,请执行以下操作:
如需了解如何请求和验证证书,请参阅创建私钥和证书。
将自行管理的证书上传到 Certificate Manager
如需将证书上传到 Certificate Manager,请执行以下操作:
控制台
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
替换以下内容:
Terraform
如需上传自行管理的证书,您可以使用包含 self_managed 代码块的 google_certificate_manager_certificate 资源。
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"
}
}
替换以下内容:
将自行管理的证书部署到负载均衡器
如需部署自行管理的全球证书,请将其直接附加到目标代理。
将证书直接附加到目标代理
您可以将证书附加到新的目标代理或现有目标代理。
如需将证书附加到新的目标代理,请使用 gcloud compute
target-https-proxies create 命令:
gcloud compute target-https-proxies create PROXY_NAME \
--url-map=URL_MAP \
--certificate-manager-certificates=CERTIFICATE_NAME \
--global
替换以下内容:
如需将证书附加到现有目标 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 替换为目标证书的名称。
如果您不打算使用负载均衡器,请删除该负载均衡器及其资源。请参阅清理负载均衡设置。