IBM Cloud Docs
连接第三方认证中心

连接第三方认证中心

通过 IBM Cloud® Secrets Manager,您可以通过向实例添加配置来连接到第三方认证中心。

认证中心 (CA) 是用于签署和发放 SSL/TLS 证书的实体。 通过添加 CA 配置,可以指定通过 Secrets Manager 订购公用证书 时要使用的权限。

每个实例最多可以定义 10 个认证中心配置。 要查看可用于实例的配置列表,请转至 Secrets Manager UI 中的“密钥引擎> 公用证书”页面。

每个实例最多可以定义 10 个认证中心配置。 要获取可用于实例的配置列表,可以使用 列出配置 API。

准备工作

开始之前,请确保您具有所需的访问级别。 要管理实例的引擎配置,您需要 管理者 服务角色或更高版本

支持的认证中心

您可以将以下认证中心与 Secrets Manager 服务实例集成。

先决条件 - Let's Encrypt
先决条件
在连接 Let 's Encrypt 之前,请确保:

-获取与自动证书管理环境 (ACME) 帐户关联的专用密钥。
通过 ACME 协议,可以在没有人为干预的情况下自动获取浏览器可信证书。 在可以通过 Secrets Manager请求 Let 's Encrypt 证书之前,您必须具有 ACME 帐户。 如果您已具有有效的 ACME 帐户,那么需要最初创建帐户时生成的专用密钥。

-可选: 创建 ACME 帐户。
如果您没有现有的 ACME 客户机或帐户,那么可以使用 ACME 帐户创建工具来创建一个客户机或帐户。

当您订购或更新证书时,认证中心可能会应用费用。 此外,适用各种速率限制。Secrets Manager 不会控制与订购证书关联的成本或速率限制。 有关订购 Let 's Encrypt 证书时要记住的速率限制的更多信息,请查看 Let 's Encrypt 文档

在 UI 中添加认证中心配置

您可以使用 Secrets Manager UI 将认证中心配置添加到服务实例。

  1. 在控制台中,单击 菜单 图标 "菜单" 图标 > 资源列表

  2. 从服务列表中,选择 Secrets Manager的实例。

  3. 在“密钥引擎”页面中,单击 公用证书 选项卡。

  4. 在“认证中心”表中,单击 添加

  5. 选择您要使用的证书颁发机构。 目前,支持 Let 's Encrypt。

    1. 要将生产环境作为目标,请选择 Let 's Encrypt
    2. 要将登台环境作为目标,请选择 Let 's Encrypt (Staging)。 如果要发放尚未生产就绪的证书,请选择此选项。
  6. 以 PEM 格式添加与您的 ACME 帐户 相关联的专用密钥文件,或者输入其值。

  7. 单击添加

    现在,您可以在订购证书时选择此配置。 要修改或除去现有配置,请单击要更新的配置行中的 操作 菜单 "操作" 图标

从 CLI 添加认证中心配置

您可以使用 Secrets Manager CLI 将认证中心配置添加到服务实例。

要添加配置,请运行 ibmcloud secrets-manager configuration-create 命令。

ibmcloud secrets-manager configuration-create '{
  config_type": "public_cert_configuration_ca_lets_encrypt",
  "lets_encrypt_environment": "production",
  "lets_encrypt_private_key": "-----BEGIN PRIVATE KEY-----\nMY_PRIVATE_KEY_WITH_NEWLINES_TRANSFORMED_TO_\N_CHARS-----...", "name": "my-lets-encrypt-config"
  }'

使用 API 添加认证中心配置

您可以通过调用 Secrets Manager API 将认证中心配置添加到服务实例。

以下示例显示可用于为 Let 's Encrypt 添加配置的查询。 调用 API 时,请将 private_key 值替换为与 ACME 帐户 关联的专用密钥。

确保将专用密钥文件转换为单行格式,以便 Secrets Manager API 可以正确解析该文件。 可以使用以下 UNIX 命令将文件格式化为单行字符串: awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' <private_key_file>

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
    "config_type": "public_cert_configuration_ca_lets_encrypt",
    "lets_encrypt_environment": "production",
    "lets_encrypt_private_key": "-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAqcRbzV1wp0nVrPtEpMtnWMO6Js1q3rhREZluKZfu0Q8SY4H3",
    "name": "lets-encrypt-config"
  }' \
    "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

成功响应会将配置添加到服务实例。 有关必需和可选请求参数的更多信息,请参阅 添加配置

使用 Terraform 添加认证中心配置

以下示例显示可用于创建根认证中心的配置。

    resource "ibm_sm_public_certificate_configuration_ca_lets_encrypt" "my_lets_encrypt_config" {
        instance_id = local.instance_id
        region = local.region
        name = "lets-encrypt-config"
        lets_encrypt_environment = "production"
        lets_encrypt_private_key = var.my_lets_encrypt_private_ley
    }

在 UI 中删除认证中心配置

如果不再需要配置,那么可以使用 Secrets Manager UI 将其删除。

删除配置后,无法再自动轮换与认证中心关联的证书。 请勿删除与生产应用程序或服务中的证书相关联的配置。

  1. 在控制台中,单击 菜单 图标 "菜单" 图标 > 资源列表

  2. 从服务列表中,选择 Secrets Manager的实例。

  3. 在“密钥引擎”页面中,单击 公用证书 选项卡。

  4. 使用 认证中心 表来查看实例中的配置。

  5. 在要删除的配置的行中,单击 操作 菜单 "操作" 图标 > 删除

  6. 输入配置的名称以确认其删除。

  7. 单击删除

从 CLI 中删除证书颁发机构配置

要删除证书颁发机构配置,请运行 ibmcloud secrets-manager configuration-delete 命令。

ibmcloud secrets-manager configuration-delete my-configuration-name

使用 API 删除认证中心配置

您可以通过调用 Secrets Manager API 来删除配置。

以下示例显示可用于从实例中除去认证中心配置的查询。 调用 API 时,请将 {config_name} 替换为要删除的配置的名称。

删除配置后,无法再自动轮换与认证中心关联的证书。 请勿删除与生产应用程序或服务中的证书相关联的配置。

curl -X DELETE
  --H "Authorization: Bearer {iam_token}"\
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"

成功的响应将从服务实例中除去配置。 有关必需和可选请求参数的更多信息,请参阅 除去配置

在 UI 中检索认证中心配置

您可以使用 Secrets Manager UI 来检索认证中心值。

  1. 公用证书 私钥引擎中,单击“认证中心”表中的 操作 菜单 "操作" 图标 以打开引擎配置的选项列表。
  2. 要查看配置值,请单击 查看配置
  3. 确保您处于安全环境中后,单击 确认

将显示密钥值 15 秒,然后关闭对话框。

使用 CLI 检索认证中心配置

您可以使用 Secrets Manager CLI 来检索认证中心值。 在以下示例命令中,将引擎配置名称替换为配置的名称。

ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud

{instance_ID}{region} 替换为适用于 Secrets Manager 服务实例的值。 要找到特定于您的实例的终端 URL,您可以从 Secrets Manager UI 中的终端页面复制它。 有关更多信息,请参阅 查看端点 URL

使用 API 检索认证中心配置

您可以使用 Secrets Manager API 来检索认证中心值。 在以下示例请求中,将引擎配置名称替换为配置的名称。

curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"

{instance_ID}{region} 替换为适用于 Secrets Manager 服务实例的值。 要找到特定于您的实例的终端 URL,您可以从 Secrets Manager UI 中的终端页面复制它。 有关更多信息,请参阅 查看端点 URL

成功响应将返回引擎配置的值以及其他元数据。 有关必需和可选请求参数的更多信息,请参阅 获取私钥

后续步骤