本页面介绍了如何创建和管理用于双向 TLS 身份验证 (mTLS) 场景的信任配置。
如需了解详情,请参阅以下资源:
如需详细了解信任配置、信任锚和中间证书,请参阅 Certificate Manager 的工作原理中的信任配置。
如需详细了解 mTLS,请参阅 Cloud Load Balancing 文档中的双向 TLS 身份验证。
如需使用信任配置在目标代理上配置 mTLS,请参阅 Cloud Load Balancing 文档中的以下页面之一:
本页面中的 gcloud
说明假定您使用的是 Cloud Shell 或安装了 bash
的其他环境。如需详细了解本页面中使用的 gcloud
命令,请参阅 Certificate Manager CLI 参考文档。
创建信任配置
如需完成此任务,您必须拥有目标 Google Cloud 项目的以下角色之一:
- Certificate Manager Editor (
roles/certificatemanager.editor
) - 证书管理器所有者 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需创建信任配置,请完成以下步骤:
创建一个指定信任配置参数的信任配置 YAML 文件。 该文件采用以下格式:
trustStores: ‑ trustAnchors: ‑ pemCertificate: "CERTIFICATE_PEM_PAYLOAD" intermediateCas: ‑ pemCertificate: "INTER_CERT_PEM_PAYLOAD" allowlistedCertificates: ‑ pemCertificate: "ALLOWLISTED_CERT1" ‑ pemCertificate: "ALLOWLISTED_CERT2"
请替换以下内容:
TRUST_CONFIG_ID
:用于标识此信任配置资源的唯一 ID。CERTIFICATE_PEM_PAYLOAD
:要用于此信任配置资源的证书的完整 PEM 载荷。INTER_CERT_PEM_PAYLOAD
:要用于此信任配置资源的中间证书的完整 PEM 载荷。这个值是可选值。ALLOWLISTED_CERT1
和ALLOWLISTED_CERT2
:添加到许可名单中以用于此信任配置资源的证书。这个值是可选值。您可以使用
pemCertificate
字段的多个实例(每个实例一个证书)在信任配置资源规范的相应部分指定多个信任锚和中间证书。添加到许可名单的证书表示任何可封装在信任配置中以始终被视为有效的证书。如需在信任配置中的许可名单上封装多个证书,请使用
pemCertificate
字段的多个实例,每个实例一个证书。使用添加到许可名单的证书时,不需要受信任证书存储区。只要证书可解析、已建立私钥所有权证明,并且满足证书的 SAN 字段的相关限制条件,添加到许可名单的证书就始终被视为有效。在添加到许可名单后,过期的证书也会被视为有效。如需详细了解 PEM 编码格式,请参阅 RFC 7468。
将信任配置文件导入证书管理器:
gcloud
使用
gcloud certificate-manager trust-configs import
命令:gcloud certificate-manager trust-configs import TRUST_CONFIG_ID \ --project=PROJECT_ID \ --source=TRUST_CONFIG_FILE \ --location=LOCATION
请替换以下内容:
TRUST_CONFIG_ID
:用于标识此信任配置资源的唯一 ID。PROJECT_ID
:目标 Google Cloud 项目的 ID。TRUST_CONFIG_FILE
:您在第 1 步中创建的信任配置 YAML 文件的完整路径和名称。LOCATION
:存储信任配置资源的区域。默认位置是global
。
API
向
trustConfigs.create
方法发出POST
请求:POST /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs?trust_config_id=TRUST_CONFIG_ID { "description": "DESCRIPTION", "trust_stores": { "trust_anchors": [{ "pem_certificate": "CERTIFICATE_PEM_PAYLOAD" }], "intermediate_cas": [{ "pem_certificate": "INTER_CERT_PEM_PAYLOAD" }], }, "allowlistedCertificates": [{ "pem_certificate": "ALLOWLISTED_CERT" }], }
请替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。LOCATION
:位置属性指定存储信任配置资源的区域。默认位置为global
。TRUST_CONFIG_ID
:用于标识此信任配置资源的唯一 ID。DESCRIPTION
:此信任配置资源的有意义的说明。这个值是可选值。CERTIFICATE_PEM_PAYLOAD
:要用于此信任配置资源的证书的完整 PEM 载荷。INTER_CERT_PEM_PAYLOAD
:要用于此信任配置资源的中间证书的完整 PEM 载荷。这个值是可选值。ALLOWLISTED_CERT
:添加到许可名单以用于此信任配置资源的证书。该值是可选值。
更新信任配置
如需完成此任务,您必须拥有目标 Google Cloud 项目的以下角色之一:
- Certificate Manager Editor (
roles/certificatemanager.editor
) - 证书管理器所有者 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需更新信任配置,请完成以下步骤:
创建一个更新后的信任配置 YAML 文件,用于指定新的信任配置参数。该文件采用以下格式:
name: "TRUST_CONFIG_ID" trustStores: ‑ trustAnchors: ‑ pemCertificate: "CERTIFICATE_PEM_PAYLOAD" intermediateCas: ‑ pemCertificate: "INTER_CERT_PEM_PAYLOAD" allowlistedCertificates: ‑ pemCertificate: "ALLOWLISTED_CERT1" ‑ pemCertificate: "ALLOWLISTED_CERT2"
请替换以下内容:
TRUST_CONFIG_ID
:用于标识此信任配置资源的唯一 ID。CERTIFICATE_PEM_PAYLOAD
:要用于此信任配置资源的证书的完整 PEM 载荷。INTER_CERT_PEM_PAYLOAD
:要用于此信任配置资源的中间证书的完整 PEM 载荷。这个值是可选值。ALLOWLISTED_CERT1
和ALLOWLISTED_CERT2
:添加到许可名单中以用于此信任配置资源的证书。这个值是可选值。
根据现有的信任配置资源名称,将新的信任配置文件导入证书管理器:
gcloud
使用
gcloud certificate-manager trust-configs import
命令:gcloud certificate-manager trust-configs import TRUST_CONFIG_ID \ --project=PROJECT_ID \ --source=TRUST_CONFIG_FILE \ --location=LOCATION
请替换以下内容:
TRUST_CONFIG_ID
:目标信任配置资源的 ID。PROJECT_ID
:目标 Google Cloud 项目的 ID。TRUST_CONFIG_FILE
:更新后的信任配置文件的完整路径和名称。LOCATION
:位置属性指定存储信任配置资源的区域。默认位置为global
。
API
向
trustConfigs.update
方法发出PATCH
请求:PATCH /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID?update_mask=* { "description": "DESCRIPTION", "trust_stores": { "trust_anchors": [{ "pem_certificate": "CERTIFICATE_PEM_PAYLOAD" }], "intermediate_cas": [{ "pem_certificate": "INTER_CERT_PEM_PAYLOAD" }], }, "allowlistedCertificates": [{ "pem_certificate": "ALLOWLISTED_CERT" }], }
请替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。LOCATION
:位置属性指定存储信任配置资源的区域。默认位置为global
。TRUST_CONFIG_ID
:目标信任配置资源的 ID。DESCRIPTION
:此信任配置资源的有意义的说明。此说明是可选的。CERTIFICATE_PEM_PAYLOAD
:要用于此信任配置资源的证书的完整 PEM 载荷。INTER_CERT_PEM_PAYLOAD
:要用于此信任配置配置资源的中间证书的完整 PEM 载荷。这个值是可选值。ALLOWLISTED_CERT
:添加到许可名单以用于此信任配置资源的证书。该值是可选值。
列出信任配置
如需完成此任务,您必须拥有目标 Google Cloud 项目的以下角色之一:
- Certificate Manager Viewer (
roles/certificatemanager.viewer
) - Certificate Manager Editor (
roles/certificatemanager.editor
) - 证书管理器所有者 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需列出已配置的信任配置,请完成以下步骤。
控制台
在 Google Cloud 控制台中,前往 Certificate Manager 页面。
点击信任配置标签页。
该标签页会显示已配置的信任配置资源列表。
gcloud
使用 gcloud certificate-manager trust-configs list
命令:
gcloud certificate-manager trust-configs list \ --filter="FILTER" \ --page-size="PAGE_SIZE" \ --limit="LIMIT" \ --sort-by="SORT_BY" \ --location=LOCATION
请替换以下内容:
FILTER
:用于将返回结果限制为特定值的表达式。例如,您可以按照以下条件过滤结果:
- 标签和创建时间:
--filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
如需查看可与 Certificate Manager 搭配使用的更多过滤示例,请参阅 Cloud Key Management Service 文档中的对列表结果进行排序和过滤。
- 标签和创建时间:
PAGE_SIZE
:每页返回的结果数。LIMIT
:要返回的结果数上限。SORT_BY
:返回结果排序所依据的name
字段列表(以英文逗号分隔)。默认的排序顺序为升序。对于降序排序顺序,请在所选字段前面加上波浪号 (
~
)。LOCATION
:位置属性指定存储信任配置资源的区域。默认位置为global
。
API
向 trustConfigs.list
方法发出 GET
请求:
GET /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY
请替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。FILTER
:用于将返回结果限制为特定值的表达式。PAGE_SIZE
:每页返回的结果数。SORT_BY
:以英文逗号分隔的字段名称列表,返回结果排序时依据该列表。默认的排序顺序为升序。对于降序排序顺序,请在所选字段前面加上波浪号 (
~
)。LOCATION
:位置属性指定存储信任配置资源的区域。默认位置为global
。
查看信任配置
如需完成此任务,您必须拥有目标 Google Cloud 项目的以下角色之一:
- Certificate Manager Viewer (
roles/certificatemanager.viewer
) - Certificate Manager Editor (
roles/certificatemanager.editor
) - 证书管理器所有者 (
roles/certificatemanager.owner
)
如需了解详情,请参阅角色和权限。
如需查看信任配置,请完成以下步骤。
控制台
在 Google Cloud 控制台中,前往 Certificate Manager 页面。
点击信任配置标签页。该标签页会显示已配置的信任配置资源列表。
选择信任配置资源以查看其详细信息。
信任配置详情页面会显示所选信任配置的相关详细信息。
gcloud
使用 gcloud certificate-manager trust-configs describe
命令:
gcloud certificate-manager trust-configs describe TRUST_CONFIG_ID \ --location=LOCATION
请替换以下内容:
TRUST_CONFIG_ID
:目标信任配置的 ID。LOCATION
:存储信任配置资源的区域。默认位置是global
。
API
向 trustConfigs.get
方法发出 GET
请求:
GET /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID
请替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。TRUST_CONFIG_ID
:目标信任配置的 ID。LOCATION
:位置属性指定存储信任配置资源的区域。默认位置为global
。
删除信任配置
如需完成此任务,您必须拥有目标 Google Cloud 项目的 Certificate Manager Owner 角色 (roles/certificatemanager.owner
)。
如需了解详情,请参阅角色和权限。
如需删除信任配置,请完成以下步骤。
gcloud
使用 gcloud certificate-manager trust-configs delete
命令:
gcloud certificate-manager trust-configs delete TRUST_CONFIG_ID \ --location=LOCATION
请替换以下内容:
TRUST_CONFIG_ID
:目标信任配置的 ID。LOCATION
:存储信任配置资源的区域。默认位置为global
。
API
向 trustConfigs.delete
方法发出 DELETE
请求:
DELETE /v1/projects/PROJECT_ID/locations/LOCATION/trustConfigs/TRUST_CONFIG_ID
请替换以下内容:
PROJECT_ID
:目标 Google Cloud 项目的 ID。LOCATION
:存储信任配置资源的区域。默认位置是global
。TRUST_CONFIG_ID
:目标信任配置的 ID。