连接第三方认证中心
通过 IBM Cloud® Secrets Manager,您可以通过向实例添加配置来连接到第三方认证中心。
认证中心 (CA) 是用于签署和发放 SSL/TLS 证书的实体。 通过添加 CA 配置,可以指定通过 Secrets Manager 订购公用证书 时要使用的权限。
每个实例最多可以定义 10 个认证中心配置。 要查看可用于实例的配置列表,请转至 Secrets Manager UI 中的“密钥引擎> 公用证书”页面。
每个实例最多可以定义 10 个认证中心配置。 要获取可用于实例的配置列表,可以使用 列出配置 API。
准备工作
开始之前,请确保您具有所需的访问级别。 要管理实例的引擎配置,您需要 管理者 服务角色或更高版本。
支持的认证中心
您可以将以下认证中心与 Secrets Manager 服务实例集成。
先决条件 |
---|
在连接 Let 's Encrypt 之前,请确保:
-获取与自动证书管理环境 (ACME) 帐户关联的专用密钥。 -可选: 创建 ACME 帐户。 |
当您订购或更新证书时,认证中心可能会应用费用。 此外,适用各种速率限制。Secrets Manager 不会控制与订购证书关联的成本或速率限制。 有关订购 Let 's Encrypt 证书时要记住的速率限制的更多信息,请查看 Let 's Encrypt 文档。
在 UI 中添加认证中心配置
您可以使用 Secrets Manager UI 将认证中心配置添加到服务实例。
-
在控制台中,单击 菜单 图标
> 资源列表。
-
从服务列表中,选择 Secrets Manager的实例。
-
在“密钥引擎”页面中,单击 公用证书 选项卡。
-
在“认证中心”表中,单击 添加。
-
选择您要使用的证书颁发机构。 目前,支持 Let 's Encrypt。
- 要将生产环境作为目标,请选择 Let 's Encrypt。
- 要将登台环境作为目标,请选择 Let 's Encrypt (Staging)。 如果要发放尚未生产就绪的证书,请选择此选项。
-
以 PEM 格式添加与您的 ACME 帐户 相关联的专用密钥文件,或者输入其值。
-
单击添加。
现在,您可以在订购证书时选择此配置。 要修改或除去现有配置,请单击要更新的配置行中的 操作 菜单
。
从 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 将其删除。
删除配置后,无法再自动轮换与认证中心关联的证书。 请勿删除与生产应用程序或服务中的证书相关联的配置。
-
在控制台中,单击 菜单 图标
> 资源列表。
-
从服务列表中,选择 Secrets Manager的实例。
-
在“密钥引擎”页面中,单击 公用证书 选项卡。
-
使用 认证中心 表来查看实例中的配置。
-
在要删除的配置的行中,单击 操作 菜单
> 删除。
-
输入配置的名称以确认其删除。
-
单击删除。
从 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 来检索认证中心值。
- 在 公用证书 私钥引擎中,单击“认证中心”表中的 操作 菜单
以打开引擎配置的选项列表。
- 要查看配置值,请单击 查看配置。
- 确保您处于安全环境中后,单击 确认。
将显示密钥值 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
成功响应将返回引擎配置的值以及其他元数据。 有关必需和可选请求参数的更多信息,请参阅 获取私钥。