管理信任配置

本页介绍了如何创建和管理信任配置,以便在互为 TLS 身份验证 (mTLS) 场景中使用。

如需详细了解 mTLS,请参阅以下资源:

创建信任配置

创建信任配置时,您必须指定用于验证证书的信任锚。

如需创建信任配置,请完成以下步骤:

控制台

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

    前往 Certificate Manager

  2. Trust Configs 标签页上,点击 Add Trust Config

  3. Name 字段中,输入配置的名称。

    该名称在项目中必须是唯一的。此外,它必须以小写字母开头,后面最多可跟 62 个小写字母、数字或连字符,但不能以连字符结尾。

  4. 可选:在说明字段中,输入配置的说明。此说明有助于您日后识别特定配置。

  5. 可选:在标签字段中,指定要与信任配置相关联的标签。如需添加标签,请点击 添加标签,然后为标签指定键和值。

  6. 对于位置,选择全球区域级

    如果您选择了区域级,请选择区域

  7. 受信任证书存储区部分,添加信任锚和中间 CA。

    您可以通过为证书使用多个完整 PEM 载荷实例(每个实例一个证书)来指定多个信任锚点和中间证书。

    1. 信任锚部分,点击添加信任锚,然后上传 PEM 编码的证书文件,或复制证书的内容。完成后,点击添加

    2. 可选:在中间 CA 部分,点击添加中间 CA,然后上传 PEM 编码的中间证书文件,或复制中间证书的内容。完成后,点击添加

      通过此步骤,您可以在根证书和服务器证书之间建立另一层信任。

    3. 可选:在许可名单中的证书部分中,点击添加证书并上传 PEM 编码的证书文件,或复制证书的内容。这会将证书添加到许可名单中。完成后,点击添加

    如需在信任配置资源规范中指定多个信任锚或中间证书,请使用 pemCertificate 字段的多个实例。该字段的每个实例都包含一个证书。

    信任配置始终将许可名单中的证书视为有效。如需封装许可名单中的多个证书,请使用 pemCertificate 字段的多个实例,每个实例对应一个证书。使用添加到许可名单的证书时,您无需信任库。

    如果许可名单中的证书满足特定条件(必须可解析、具有私钥所有权证明,并且遵守证书 SAN 字段的限制条件),信任配置始终会将其视为有效。过期的证书在列入许可名单时也会被视为有效。如需详细了解 PEM 编码格式,请参阅 RFC 7468

  8. 点击创建

确认新的信任配置是否显示在配置列表中。

gcloud

  1. 创建一个信任配置 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_CERT1ALLOWLISTED_CERT2:添加到许可名单中以供此信任配置资源使用的证书。

    如需在信任配置资源规范中指定多个信任锚或中间证书,请使用 pemCertificate 字段的多个实例。该字段的每个实例都包含一个证书。

    信任配置始终将许可名单中的证书视为有效。如需封装许可名单中的多个证书,请使用 pemCertificate 字段的多个实例,每个实例对应一个证书。使用添加到许可名单的证书时,您无需信任库。

    如果许可名单中的证书满足特定条件(必须可解析、具有私钥所有权证明,并且遵守证书 SAN 字段的限制条件),信任配置始终会将其视为有效。过期的证书在列入许可名单时也会被视为有效。如需详细了解 PEM 编码格式,请参阅 RFC 7468

  2. 如需导入信任配置 YAML 文件,请使用 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:添加到许可名单中以供此信任配置资源使用的证书。此值为可选值。

更新信任配置

如需更新信任配置,您需要创建另一个用于指定新信任配置参数的信任配置 YAML 文件,并将此文件导入证书管理器。

控制台

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

    前往 Certificate Manager

  2. Trust Configs 标签页上,找到并选择要更新的信任配置。

  3. 更多选项列中,点击要更新的配置对应的 更多操作,然后选择修改

  4. 进行必要的更改。

  5. 点击保存

验证配置更改是否已更新。

gcloud

  1. 导出信任配置 YAML 文件。

    gcloud certificate-manager trust-configs export TRUST_CONFIG_ID \
        --project=PROJECT_ID \
        --destination=TRUST_CONFIG_FILE \
        --location=LOCATION
    

    替换以下内容:

    • TRUST_CONFIG_ID:信任配置资源的 ID。
    • PROJECT_ID:Google Cloud 项目的 ID。
    • TRUST_CONFIG_FILE:信任配置 YAML 文件的完整路径和名称。
    • LOCATION:存储信任配置资源的区域。默认位置是 global
  2. 修改信任配置 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_CERT1ALLOWLISTED_CERT2:添加到许可名单中以供此信任配置资源使用的证书。此值为可选值。
  3. 将新的信任配置文件导入 Certificate Manager,并使用现有信任配置资源名称。

    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:信任配置 YAML 文件的完整路径和名称。
    • 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:添加到许可名单中以供此信任配置资源使用的证书。此值为可选值。

列出信任配置

您可以查看项目的所有已配置信任配置。

控制台

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

    前往 Certificate Manager

  2. 点击 Trust Configs(信任配置)标签页。该标签页会显示已配置的信任配置资源的列表。

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。
  • LOCATION:存储信任配置资源的区域。如需查看所有位置的所有信任配置,请指定一个单独的连字符 (-)。
  • FILTER:用于将返回的结果限制为特定值的表达式。

    例如,如需按标签和创建时间过滤结果,您可以指定:--filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    如需查看可与 Certificate Manager 搭配使用的更多过滤示例,请参阅 Cloud Key Management Service 文档中的对列表结果进行排序和过滤部分。

  • PAGE_SIZE:每页返回的结果数。

  • SORT_BY:用于对返回结果进行排序的 name 字段的英文逗号分隔列表。默认排序顺序为升序;如需降序排序,请在字段前面加上波浪号 (~)。

查看信任配置

您可以查看特定信任配置的详细信息。

控制台

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

    前往 Certificate Manager

  2. 点击 Trust Configs(信任配置)标签页。该标签页会显示已配置的信任配置资源的列表。

  3. 选择信任配置资源以查看其详细信息。信任配置详情页面会显示所选信任配置的详细信息。

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。
  • LOCATION:存储信任配置资源的区域。默认位置是 global
  • TRUST_CONFIG_ID:信任配置资源的 ID。

删除信任配置

在删除信任配置之前,请先将信任配置与客户端身份验证 (ServerTlsPolicy) 资源分离。

控制台

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

    前往 Certificate Manager

  2. 信任配置标签页中,选中要删除的信任配置对应的复选框。

  3. 点击删除

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

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。

后续步骤