IBM Cloud Docs
创建中间认证中心

创建中间认证中心

中间认证中心 (CA) 是较低级别的认证中心,可以对最终实体 (例如应用程序或 Web 站点) 进行签名和发放证书。 在 IBM Cloud® Secrets Manager中,可以使用中间 CA 来创建 专用证书

如果您已在 Secrets Manager 实例 (例如,根 CA 或中间 CA) 中创建了父 CA,那么可以使用它来签署和发出中间 CA。 如果在 Secrets Manager外部的其他位置创建了父 CA,那么还可以使用该 CA 来签署中间 CA。

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

准备工作

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

受支持的签名方法

该服务提供两种选择:

创建中间 CA 的选项
签名选项 使用时间
内部签名 您正在构建使用现有父 CA (例如,根 CA 或其他中间 CA) 作为其信任锚的证书链。 父 CA 先前是在同一 Secrets Manager 实例中创建的。
外部签名 如果在脱机或其他 Secrets Manager 服务实例中创建了父 CA,那么可以使用外部 CA 来签署和发放中间认证中心。

Terraform 中的配置操作不受支持

以下操作不受支持。

  • 轮换 CRL
  • 撤销 CA

在 UI 中创建具有内部签名的中间 CA

具有内部签名的中间 CA 使用先前在 Secrets Manager 实例中创建的父 CA 作为其信任锚。 您可以使用 Secrets Manager UI 创建具有内部签名的中间 CA。

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

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

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

  4. 在“认证中心”表中,单击 创建认证中心 以启动创建向导。

  5. 指定认证中心类型和选项。

    1. 选择 中间认证中心 作为权限类型。
    2. 选择 内部签名。 从已配置 CA 的列表中,选择要用作中间 CA 证书签发者的 CA。
    3. 输入名称以轻松识别认证中心。
    4. 选择要为此 CA 生成的证书的最长生存时间 (TTL)。 TTL 确定 CA 证书保持有效的时间长度。
    5. 选择链中可以存在的最大端实体证书数。
    6. 要将颁发机构证书 URL 编码为终端实体证书,请将“编码 URL”选项设置为“启用”。
  6. 输入根 CA 证书的主题名称字段。

  7. 选择“关键管理服务”。 选择 Secrets Manager 服务,以便在服务内部创建根证书授权密钥,或选择 Hyper Protect Crypto Services (HPCS)。 如果选择 HPCS,则执行以下任务:

    1. 从实例下拉列表中选择您的 HPCS 实例,或手动输入您的 HPCS 实例 CRN

    2. 选择之前创建的 IAM 凭据密文,以便与 HPCS 进行身份验证。

      一旦在 CA 配置中设置了 IAM 凭据,以后就无法替换。

    3. 从密钥存储下拉列表中选择 HPCS 私有密钥存储,或手动输入密钥存储 ID。

    4. 选择使用现有密钥或生成新密钥。 如果选择现有的 HPCS 私钥或手动输入私钥 ID,请确保存在公钥,且其 ID 与私钥库中的私钥相同。

      如果您选择生成新密钥,在删除配置时,这些密钥将不会被 Secrets Manager 删除。

  8. 选择要用于为 CA 证书生成公用密钥和专用密钥的密钥算法

  9. 确定是否为 CA 证书启用证书撤销列表 (CRL) 构建和分发点。

    CRL 是由签发认证中心在其预定到期日期之前撤销的证书的列表。 应用程序无法再信任作为 CRL 一部分列出的证书。

    1. 要使用每个证书请求为中间 CA 构建 CRL,请将 CRL 构建 选项设置为 已启用
    2. 要将吊销列表中的 URL 编码到中间CA证书中,请将 CRL分发点选项设置为启用
    3. 选择生成的 CRL 的生存时间 (TTL)。 TTL 确定 CRL 保持有效的时间长度。
  10. 复查您的选择。 要创建中间 CA,请单击 创建

现在,您可以选择此中间 CA 以 生成专用证书。 要修改或除去现有配置,请单击要更新的认证中心行中的 操作 菜单 "操作" 图标

使用 API 创建具有内部签名的中间 CA

具有内部签名的中间 CA 使用先前在 Secrets Manager 实例中创建的父 CA 作为其信任锚。 您可以使用 Secrets Manager API 创建具有内部签名的中间 CA。

步骤 1: 创建具有内部签名的中间 CA

以下示例显示了可用于创建具有内部签名的中间 CA 的查询。 在请求主体中,将 signing_method 属性的值设置为 internal。 使用 issuer 属性来指定父认证中心。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_intermediate_ca",
  "name": "example-intermediate-CA",
  "common_name": "example.com",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "crl_expiry": "72h",
  "issuer": "example-root-CA",
  "issuing_certificates_urls_encoded": true,
  "max_ttl": "26300h",
  "signing_method": "internal"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

如果自带 HSM,请在申请中注明以下内容:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

步骤 2: 签署中间 CA

以下示例显示可用于对步骤 1 中创建的中间 CA 进行签名的查询。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d -d '{
  "action_type": "private_cert_configuration_action_sign_intermediate",
  "intermediate_certificate_authority": "example-intermediate-CA"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-root-CA/actions"

在 UI 中创建具有外部签名的中间 CA

具有外部签名的中间 CA 使用来自外部 PKI 系统或甚至另一个 Secrets Manager 实例的父 CA 作为其信任锚。 父 CA 可以是根 CA 或中间 CA。

步骤 1: 创建中间 CA 和签名请求

您可以在 Secrets Manager UI 中创建使用外部签名的中间 CA 证书。

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

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

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

  4. 在“认证中心”表中,单击 创建认证中心 以启动创建向导。

  5. 指定认证中心类型和选项。

    1. 选择 中间认证中心 作为权限类型。
    2. 选择 外部签名
    3. 输入名称以轻松识别认证中心。
    4. 选择要为此 CA 生成的证书的最长生存时间 (TTL)。 TTL 确定 CA 证书保持有效的时间长度。
    5. 要将颁发机构证书 URL 编码为终端实体证书,请将“编码 URL”选项设置为“启用”。
  6. 输入中间 CA 证书的主题名称字段。

  7. 选择“关键管理服务”。 选择 Secrets Manager 服务,以便在服务内部创建根证书授权密钥,或选择 Hyper Protect Crypto Services (HPCS)。 如果选择 HPCS,则执行以下任务:

    1. 从实例下拉列表中选择您的 HPCS 实例,或手动输入您的 HPCS 实例 CRN

    2. 选择之前创建的 IAM 凭据密文,以便与 HPCS 进行身份验证。

      一旦在 CA 配置中设置了 IAM 凭据,以后就无法替换。

    3. 从密钥存储下拉列表中选择 HPCS 私有密钥存储,或手动输入密钥存储 ID。

    4. 选择使用现有密钥或生成新密钥。 如果选择现有的 HPCS 私钥或手动输入私钥 ID,请确保存在公钥,且其 ID 与私钥库中的私钥相同。

      如果您选择生成新密钥,在删除配置时,这些密钥将不会被 Secrets Manager 删除。

  8. 选择要用于为 CA 证书生成公用密钥和专用密钥的密钥算法

  9. 确定是否为 CA 证书启用证书撤销列表 (CRL) 构建和分发点。

    CRL 是发布认证中心在其预定到期日期之前撤销的证书的列表。 应用程序无法再信任作为 CRL 一部分列出的证书。

    1. 要使用每个证书请求为中间 CA 构建 CRL,请将 CRL 构建 选项设置为 已启用
    2. 要将吊销列表中的 URL 编码到中间CA证书中,请将 CRL分发点选项设置为启用
    3. 选择生成的 CRL 的生存时间 (TTL)。 TTL 确定 CRL 保持有效的时间长度。
  10. 复查您的选择。 要创建中间 CA,请单击 创建

中间 CA 将添加到具有 签名必需 状态的实例的配置列表中。 必须先使用在外部 PKI 系统中创建的父 CA 证书对其进行签名,然后才能使用此中间 CA 来发放专用证书。

步骤 2: 使用外部 CA 签署中间 CA

在 Secrets Manager 中创建要使用外部 CA 进行签名的中间 CA 时,将生成 证书签名请求(CSR)组织为了获取证书而向认证中心 (CA) 发送的电子消息。 该请求是使用专用密钥进行签名的,其中包含公用密钥;CA 会使用其自己的专用密钥对证书进行签名,然后返回证书。。 您可以使用 CSR 来签署和发放中间 CA 证书。

  1. 在 Secrets Manager UI 中,转至 密钥引擎> 专用证书

  2. 在要签署的中间 CA 的行中,单击 操作 菜单 "操作" 图标 > 签署证书

  3. 复制或下载 CSR。

  4. 使用 CSR 对中间 CA 证书进行签名。

    您可以从各种工具 (例如 openssl) 中选择对 CSR 文件进行签名。 例如,以下 openssl 命令获取从 Secrets Manager 下载的 CSR 文件,并使用 PEM 编码的 CA 文件及其关联的专用密钥来发放已签名的 CA 证书。

    openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>
    

    该命令会输出已签名的中间 CA 证书文件,然后可以将该文件导入到 Secrets Manager 实例以完成签名过程。

步骤 3: 将已签名的中间 CA 导入到实例

使用外部父 CA 对中间 CA 证书进行签名后,可以使用 Secrets Manager UI 将其导入到实例中。

  1. 在 Secrets Manager UI 中,转至 密钥引擎> 专用证书

  2. 在您签署的中间 CA 的行中,单击 操作 菜单 "操作" 图标 > 签署证书

  3. 选择或输入在 上一步 中签名的已签名中间 CA 证书文件。

  4. 单击 签名 以完成外部签名过程。

    已签名的中间 CA 将添加到具有 活动 状态的实例的配置列表中。 现在,您可以使用此中间 CA 为应用程序 创建专用证书。 要修改或除去现有配置,请单击要更新的认证中心行中的 操作 菜单 "操作" 图标

使用 API 创建具有外部签名的中间 CA

具有外部签名的中间 CA 使用来自外部 PKI 系统或甚至另一个 Secrets Manager 实例的父 CA 作为其信任锚。 父 CA 可以是根 CA 或中间 CA。 您可以使用 Secrets Manager API 创建具有外部签名的中间 CA。

步骤 1: 创建中间 CA 和签名请求

以下示例显示可用于创建具有外部签名的中间 CA 的查询。 在请求主体中,将 signing_method 属性的值设置为 external

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_intermediate_ca",
  "name": "example-intermediate-CA",
  "common_name": "example.com",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "crl_expiry": "72h",
  "issuer": "example-root-CA",
  "issuing_certificates_urls_encoded": true,
  "max_ttl": "26300h",
  "signing_method": "external"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

如果自带 HSM,请在申请中注明以下内容:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

从响应 JSON 数据复制 CSR。 CSR 值嵌套在响应的 data 属性的值中。 您还可以使用 get configuration API 从新创建的中间 CA 的数据中获取 CSR。

步骤 2: 使用外部 CA 签署中间 CA

使用在步骤 1 中复制的 CSR 来签署中间 CA 证书。 将 CSR 放入要用于签名的文件中。

您可以从各种工具 (例如 openssl) 中选择对 CSR 文件进行签名。 例如,以下 openssl 命令采用 CSR 文件,并使用 PEM 编码的 CA 文件及其关联的专用密钥来发放已签名的 CA 证书。

openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>

该命令会输出一个签名证书文件,您可以将该文件导入到中间 CA 配置中以完成签名过程。

如果父 CA 是来自另一个 Secrets Manager 实例的根 CA 或中间 CA,那么可以使用 sign-csr 操作来签署 CSR。 以下示例显示可用于对 CSR 进行签名的查询。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "action_type": "private_cert_configuration_action_sign_csr",
  "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICiDCCAXACAQAwGDEWMBQGA1UEAxMNct5ANo8jybxCwNjHOA==\n-----END CERTIFICATE REQUEST-----"
}' \  
  "https://{other_instance_ID}.{other_instance_region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-intermediate-CA/actions"

从响应中复制 certificate 字段的值以在下一步中使用该值。

步骤 3: 将已签名的中间 CA 导入到中间 CA 配置中

使用外部父 CA 对中间 CA 证书进行签名后,可以使用 set-signed 操作将其导入到中间 CA 配置中。 以下示例显示了一个可用于导入外部签名证书的查询。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "action_type": "private_cert_configuration_action_set_signed",
  "certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/example-intermediate-CA/actions"

通过 CLI 创建具有内部签名的中间 CA

具有内部签名的中间 CA 使用先前在 Secrets Manager 实例中创建的父 CA 作为其信任锚。 您可以使用 Secrets Manager CLI 创建具有内部签名的中间 CA。

步骤 1: 创建具有内部签名的中间 CA

要创建具有内部签名的中间 CA,请运行 ibmcloud secrets-manager configuration-create 命令。 在配置原型中,将 signing_method 属性的值设置为 internal。 使用 issuer 属性来指定父认证中心。 例如,以下命令创建具有内部签名的中间 CA。

ibmcloud secrets-manager configuration-create
   --configuration-prototype='{
      "config_type": "private_cert_configuration_intermediate_ca",
      "name": "example-intermediate-CA",
      "max_ttl": "26300h",
      "signing_method": "internal",
      "issuer": "example-root-CA",
      "crl_expiry": "72h",
      "crl_disable": false,
      "crl_distribution_points_encoded": true,
      "issuing_certificates_urls_encoded": true,
      "common_name": "example.com",
      "alt_names": [
         "alt-name-1","alt-name-2"
         ],
      "ip_sans": "127.0.0.1",
      "uri_sans": "https://www.example.com/test",
      "other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
      "format": "pem",
      "private_key_format": "der",
      "key_type": "rsa",
      "key_bits": 4096,
      "exclude_cn_from_sans": false
   }'

如果自带 HSM,请在申请中注明以下内容:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

步骤 2: 签署中间 CA

要从 Secrets Manager CLI 对中间 CA 进行签名,请通过运行 ibmcloud secrets-manager configuration-action-create 命令来应用 sign-intermediate 操作。 使用 --name 命令选项传递签名认证中心 (签发者) 的名称。

ibmcloud secrets-manager configuration-action-create --name example-root-CA  
   --config-action-prototype='{
      "action_type": "private_cert_configuration_action_sign_intermediate",
      "intermediate_certificate_authority": "example-intermediate-CA"
   }'

从 CLI 创建具有外部签名的中间 CA

具有外部签名的中间 CA 使用来自外部 PKI 系统或甚至另一个 Secrets Manager 实例的父 CA 作为其信任锚。 父 CA 可以是根 CA 或中间 CA。 您可以使用 Secrets Manager CLI 创建具有外部签名的中间 CA。

步骤 1: 创建中间 CA 和签名请求

要从 Secrets Manager CLI 创建中间 CA 和签名请求,请运行 ibmcloud secrets-manager configuration-create 命令。 在配置原型中,将 signing_method 属性的值设置为 external。 使用 --output json 选项可获取包含 csr 属性值的完整响应。 例如,以下命令创建具有外部签名的中间 CA。

ibmcloud secrets-manager configuration-create --output json
   --configuration-prototype='{
      "config_type": "private_cert_configuration_intermediate_ca",
      "name": "example-intermediate-CA",
      "max_ttl": "26300h",
      "signing_method": "external",
      "crl_expiry": "72h",
      "crl_disable": false,
      "crl_distribution_points_encoded": true,
      "issuing_certificates_urls_encoded": true,
      "common_name": "example.com",
      "alt_names": [
         "alt-name-1","alt-name-2"
         ],
      "ip_sans": "127.0.0.1",
      "uri_sans": "https://www.example.com/test",
      "other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
      "format": "pem",
      "private_key_format": "der",
      "key_type": "rsa",
      "key_bits": 4096,
      "exclude_cn_from_sans": false
   }'

从响应 JSON 数据复制 CSR。 CSR 值嵌套在响应的 data 属性的值中。 您还可以通过运行带有 --output json 选项的 ibmcloud secrets-manager configuration 命令来获取新创建的中间 CA 的数据。 例如:

ibmcloud secrets-manager configuration --name example-intermediate-CA --output json

步骤 2: 使用外部 CA 签署中间 CA

使用在步骤 1 中复制的 CSR 来签署中间 CA 证书。 将 CSR 放入要用于签名的文件中。

您可以从各种工具 (例如 openssl) 中选择对 CSR 文件进行签名。 例如,以下 openssl 命令采用 CSR 文件,并使用 PEM 编码的 CA 文件及其关联的专用密钥来发放已签名的 CA 证书。

openssl x509 -req -in <intermediate-ca-csr-file> -CA <external-parent-ca-file> -CAkey <external-ca-key-file> -out <signed-intermediate-ca-file>

该命令会输出一个签名证书文件,您可以将该文件导入到中间 CA 配置中以完成签名过程。

如果父 CA 是根 CA 或来自另一个 Secrets Manager 实例的中间 CA,那么您可以通过应用 sign-csr 操作来签署 CSR。 要应用该操作,请运行 ibmcloud secrets-manager configuration-action-create 命令。 从命令输出复制 certificate 字段的值以在下一步中使用该值。 例如,如果父 CA 是另一个 Secrets Manager 实例中名为 example-root-CA 的根 CA,那么该命令将如下所示。

ibmcloud secrets-manager configuration-action-create --name example-root-CA --output json  
   --config-action-prototype='{
      "action_type": "private_cert_configuration_action_sign_csr",
      "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICiDCCAXACAQAwGDEWMBQGA1UEAxMNct5ANo8jybxCwNjHOA==\n-----END CERTIFICATE REQUEST-----"
    }'

对于 sign-csr 操作,您需要将父 CA 所在的其他 Secrets Manager 实例作为目标。 在运行该命令之前,请导出环境变量 SECRETS_MANAGER_URL 以将另一个实例作为目标。

步骤 3: 将已签名的中间 CA 导入到中间 CA 配置中

使用外部父 CA 对中间 CA 证书进行签名后,可以将其导入到中间 CA 配置中,方法是将 set-signed 操作应用于中间 CA 配置。 要应用该操作,请运行 ibmcloud secrets-manager configuration-action-create 命令。 例如:

ibmcloud secrets-manager configuration-action-create --name example-intermediate-CA
   --config-action-prototype='{
      "action_type": "private_cert_configuration_action_set_signed",
      "certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----"
    }'

使用 Terraform 创建具有内部签名的中间 CA

具有内部签名的中间 CA 使用先前在 Secrets Manager 实例中创建的父 CA 作为其信任锚。 您可以使用 Terraform for Secrets Manager创建具有内部签名的中间 CA。

以下示例显示了可用于创建具有内部签名的中间 CA 的配置。

    resource "ibm_sm_private_certificate_configuration_intermediate_ca" "my_intermediate_ca" {
        instance_id = local.instance_id
        signing_method = "internal"
        name = "example-intermediate-ca"
        common_name = "example.com"
        issuer = ibm_sm_private_certificate_configuration_root_ca.my_root_ca.name
        max_ttl = "180000"
    }

如果自带 HSM,请在配置中包含以下内容:

crypto_key {
    label = "my_key"
    allow_generate_key = true
    provider {
      type = "hyper_protect_crypto_services"
      instance_crn = "replace_with_hpcs_crn::"
      pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
      private_keystore_id = "replace_with_keystore_id"
    }
  }

使用内部签名时,定义的签发者将自动对新创建的中间 CA 证书进行签名。

使用 Terraform 创建具有外部签名功能的中间 CA

具有外部签名的中间 CA 使用来自外部 PKI 系统或甚至另一个 Secrets Manager 实例的父 CA 作为其信任锚。 父 CA 可以是根 CA 或中间 CA。 您可以使用 Terraform for Secrets Manager创建具有外部签名的中间 CA。

以下示例显示可用于创建具有外部签名的中间 CA 的配置。 配置由三个资源组成。 ibm_sm_private_certificate_configuration_intermediate_ca 资源将创建中间 CA 配置和证书签名请求。 ibm_sm_private_certificate_configuration_action_sign_csr 资源使用来自另一个 Secrets Manager 实例的根 CA 对 CSR 进行签名。 ibm_sm_private_certificate_configuration_action_set_signed 资源将签名证书导入到中间 CA 资源中。

    resource "ibm_sm_private_certificate_configuration_intermediate_ca" "my_intermediate_ca" {
        instance_id = local.instance_id
        name = "example-intermediate-ca"
        signing_method = "external"
        common_name = "example.com"
        max_ttl = "180000"
    }

    resource "ibm_sm_private_certificate_configuration_action_sign_csr" "my_sign_action" {
        instance_id = local.another_instance_id
        name = ibm_sm_private_certificate_configuration_root_ca.my_root_ca.name
        csr = ibm_sm_private_certificate_configuration_intermediate_ca.my_intermediate_ca.data[0].csr
    }

    resource "ibm_sm_private_certificate_configuration_action_set_signed" "my_set_signed_action" {
        instance_id = local.instance_id
        name = ibm_sm_private_certificate_configuration_intermediate_ca.my_intermediate_ca.name
        certificate = ibm_sm_private_certificate_configuration_action_sign_csr.my_sign_action.data[0].certificate
    }

在此示例中,我们使用外部签名,因为根 CA 位于另一个 Secrets Manager 实例中。 要使用外部PKI系统的父CA,请使用另一种方法来签署CSR,而不是使用 ibm_sm_private_certificate_configuration_action_sign_csr 资源。 例如,可以使用 tls 提供程序中的 tls_locally_signed_cert 资源。

如果自带 HSM,请在配置中包含以下内容:

crypto_key {
    label = "my_key"
    allow_generate_key = true
    provider {
      type = "hyper_protect_crypto_services"
      instance_crn = "replace_with_hpcs_crn::"
      pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
      private_keystore_id = "replace_with_keystore_id"
    }
  }

在 UI 中检索中间 CA

您可以使用 Secrets Manager UI 来检索中间 CA 值。

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

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

使用 CLI 检索中间 CA

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

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 检索中间 CA

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

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

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

后续步骤