IBM Cloud Docs
添加证书模板

添加证书模板

证书模板可帮助您定义要应用于在 IBM Cloud® Secrets Manager 服务实例中创建的专用证书的参数。 通过使用证书模板,您可以包含用于控制证书公共名称,备用名称以及它们的有效密钥用途等的参数。

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

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

为生成的证书指定允许的域

您可以指定您生成的证书所允许的域。

  • 使用 域设置 部分来添加模板允许的域。 然后,该列表与 允许裸域允许子域 选项配合使用,以确定这些域与客户机可请求证书的域之间的匹配类型。
  • 启用 允许裸域 选项以指定客户机是否可以请求与模板所允许的域匹配的证书。
  • 启用 允许子域 选项以指示客户机是否可以请求与此模板所允许的域的子域匹配的证书。 此选项中包含通配符子域。

准备工作

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

在 UI 中添加证书模板

为实例创建中间认证中心 之后,可以使用 Secrets Manager UI 来创建证书模板。

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

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

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

  4. 在“认证中心”表中,展开要用作专用证书的发放 CA 的中间认证中心的行。

  5. 单击 模板 选项卡以显示现有证书模板。

  6. 单击 添加模板 以关联新模板。

  7. 提供名称以轻松识别模板。

  8. 可选: 为生成的证书设置生存时间 (TTL)。

    通过设置 TTL,您可以确定 CA 发放的证书保持有效的时间长度。 在证书租期结束后,证书会被自动撤销。

    在证书模板上定义的 TTL 或有效期不能超过为关联 CA 定义的最大 TTL 值。 有关更多信息,请参阅 选择证书的有效期

  9. 可选: 选择要用于为生成的证书生成密钥的密钥算法

  10. 可选: 选择要为生成的证书分配的 密钥组包含实例中的私钥的环境和约束必须遵守。 用户可以与一个秘密群组关联,以实现访问和协作。

通过从列表中选择一个或多个私钥组,可以将专用证书的创建仅限于这些组。 有关私钥组的更多信息,请查看 组织私钥

  1. 可选: 对生成的专用证书启用高级选项。

  2. 域设置: 添加要应用于生成的专用证书的特定域,子域或通配符。

  3. 证书角色: 标记生成的专用证书以用于特定用途。

  4. 主题名称: 将“主题名称”参数字段应用于生成的专用证书。

  5. 要确认您的选择,请单击 添加

使用 API 添加证书模板

您可以通过调用 Secrets Manager API 为服务实例创建证书模板。

以下示例显示可用于创建证书模板并将其与为实例配置的现有中间认证中心相关联的查询。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_template",
  "name": "test-certificate-template",
  "allow_any_name": true,
  "allowed_uri_sans": [
    "https://www.example.com/test"
  ],
  "certificate_authority": "test-intermediate-CA",
  "enforce_hostnames": false,
  "max_ttl": "8760h"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

成功响应会将模板配置添加到服务实例。

{
  "allow_any_name": true,
  "allow_bare_domains": false,
  "allow_glob_domains": false,
  "allow_ip_sans": true,
  "allow_localhost": true,
  "allow_subdomains": false,
  "allowed_domains": [],
  "allowed_domains_template": false,
  "allowed_other_sans": [],
  "allowed_uri_sans": [
    "https://www.example.com/test"
  ],
  "basic_constraints_valid_for_non_ca": false,
  "certificate_authority": "test-intermediate-CA",
  "client_flag": true,
  "code_signing_flag": false,
  "config_type": "private_cert_configuration_template",
  "created_at": "2022-06-27T11:58:15Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "country": [],
  "email_protection_flag": false,
  "enforce_hostnames": false,
  "ext_key_usage": [],
  "ext_key_usage_oids": [],
  "key_bits": 2048,
  "key_type": "rsa",
  "key_usage": [
    "DigitalSignature",
    "KeyAgreement",
    "KeyEncipherment"
  ],
  "locality": [],
  "max_ttl_seconds": 31536000,
  "name": "test-certificate-template",
  "not_before_duration_seconds": 30,
  "organization": [],
  "ou": [],
  "policy_identifiers": [],
  "postal_code": [],
  "province": [],
  "require_cn": true,
  "secret_type": "private_cert",
  "server_flag": true,
  "street_address": [],
  "ttl_seconds": 43200,
  "updated_at": "2022-10-05T21:33:11Z",
  "use_csr_common_name": true,
  "use_csr_sans": true
}

从 CLI 添加证书模板

您可以使用 ibmcloud secrets-manager configuration-create 命令为服务实例创建证书模板。

以下示例显示可用于创建证书模板并将其与为实例配置的现有中间认证中心相关联的命令。

ibmcloud secrets-manager configuration-create
  --configuration-prototype='{
    "config_type": "private_cert_configuration_template",
    "name": "example-certificate-template",
    "allow_any_name": true,
    "allow_bare_domains": true,
    "allow_glob_domains": true,
    "allow_ip_sans": true,
    "allow_localhost": true,
    "allow_subdomains": false,
    "allow_wildcard_certificates": true,
    "allowed_domains": ["example.com","acme.com"],
    "allowed_domains_template": true,
    "allowed_other_sans": [
      "1.2.3.5.4.3.201.10.4.3;utf8:test@example.com",
      "1.3.6.1.4.1.201.10.5.5;UTF-8:*"
      ],
    "allowed_secret_groups": "d898bb90-82f6-4d61-b5cc-b079b66cfa76",
    "allowed_uri_sans": ["example.com","acme://*"],
    "certificate_authority": "example-intermediate-CA",
    "client_flag": true,
    "code_signing_flag": false,
    "email_protection_flag": false,
    "enforce_hostnames": false,
    "key_bits": 2048,
    "key_type": "rsa",
    "key_usage": [
      "DigitalSignature",
      "KeyAgreement",
      "KeyEncipherment"
    ],
    "max_ttl": "24h",
    "server_flag": true,
    "ttl": "8h",
    "use_csr_common_name": true,
    "use_csr_sans": true
  }'

使用 Terraform 添加证书模板

您可以使用 Terraform for Secrets Manager为服务实例创建证书模板。

以下示例显示可用于创建证书模板并将其与为实例配置的现有中间认证中心相关联的配置。

    resource "ibm_sm_private_certificate_configuration_template" "test_ca_template" {
        instance_id = local.instance_id
        region = local.region
        name = "test-ca-template"
        certificate_authority = ibm_sm_private_certificate_configuration_intermediate_ca.test_int_ca.name
        allowed_domains = ["example1.com", "my.example.com"]
        allow_any_name = true
    }

有关必需和可选请求参数的更多信息,请参阅 添加配置

在 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 中的 Endpoints 页面复制它。 有关更多信息,请参阅 查看端点 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 中的 Endpoints 页面复制它。 有关更多信息,请参阅 查看端点 URL

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

后续步骤