将证书添加到容器类型

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/barbican/+spec/add-certificate-to-the-container-type

Open Stack LBaaS 计划使用 Barbican 来处理其证书用例。我们需要在容器类型选项中添加 ‘certificate’。

问题描述

Barbican 的 Container 资源能够存储 SSL 证书以及其 private_key 和 passphrase。由于当前容器的实现仅支持 RSA 和 Generic 类型,因此无法区分包含证书的容器。

提议的变更

为容器添加 certificate 选项。这将增强容器资源和数据模型上的当前 type 属性,以接受 certificate 作为有效选项。

备选方案

数据模型影响

Container 模式将被修改,以便在容器类型约束检查中包含 certificate

REST API 影响

容器的 REST 请求和响应结构可能在 type 字段中包含 certificate

  • 示例 01 - 带有证书类型的容器请求

    {
      "name": "my-cert",
      "type": "certificate",
      "secret_refs": [
        {
           "name": "certificate",
           "secret_ref":"https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/46332930-8e52-4c40-b069-cc39ca65a221"
        },
        {
           "name": "intermediates",
           "secret_ref":"https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/21f2234a-f65c-11e3-8791-002564955ea1"
        },
        {
    
           "name": "private_key",
           "secret_ref":"https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/094e76ed-85e0-49b1-b6ce-6bde3cf6571c"
        },
        {
           "name": "private_key_passphrase",
           "secret_ref":"https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/da5ccd5a-ef0f-4cb3-8d8f-dd12308b3109"
        }
      ]
    }
    
  • 示例 02 - 带有证书类型的容器响应

    {
        "status": "ACTIVE",
        "updated": "2014-06-10 17:21:37.477461",
        "name": "my-cert",
        "secret_refs": [
            {
                "secret_ref": "https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/579d0ffe-a40c-47a6-b0c6-8978a441f661",
                "name": "private_key_passphrase"
            },
            {
                "secret_ref": "https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/93688bf3-5101-47de-bdd5-46e52186038f",
                "name": "certificate"
            },
            {
               "name": "intermediates",
               "secret_ref":"https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/21f2234a-f65c-11e3-8791-002564955ea1"
            },
            {
    
                "secret_ref": "https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/secrets/a7a61669-c6fb-4375-9577-11744f4a88f7",
                "name": "private_key"
            }
        ],
        "created": "2014-06-10 17:21:37.477448",
        "container_ref": "https://:9311/v1/b885a8320e4f48c69ddffb0364eeef36/containers/dc252a7d-600f-49a3-9df4-7bca35aa366d",
        "type": "certificate"
    }
    

安全影响

通知与审计影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人: atiwari (arvind-tiwari)

工作项

  • CR 以解决数据迁移问题。

  • CR 以在容器中添加证书类型。

依赖项

测试

需要新的单元测试来测试此功能。

文档影响

需要增强文档以添加容器类型中的证书。

参考资料

https://blueprints.launchpad.net/barbican/+spec/add-certificate-to-the-container-type