编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Kong 管理API详解之十三——SNI对象

wxchong 2024-09-16 07:07:30 开源技术 9 ℃ 0 评论

SNI对象表示主机名到证书的多对一映射。也就是说,一个证书对象可以有多个与之关联的主机名;当Kong收到一个SSL请求时,它使用客户端Hello中的SNI字段根据与证书关联的SNI查找证书对象。

SNI可以被标签标记和过滤。

{
    "id": "91020192-062d-416f-a275-9addeeaffaf2",
    "name": "my-sni",
    "created_at": 1422386534,
    "tags": ["user-level", "low-priority"],
    "certificate": {"id":"a2e013e8-7623-4494-a347-6d29108ff68b"}
}

添加SNI

  • 创建SNI
  1. 地址:/snis。
  2. 请求方式:POST。
  • 创建与指定证书关联的SNI
  1. 地址:/certificates/{certificate name or id}/snis。
  2. 请求方式:POST。

解释:certificate name 或 id(必须):证书的唯一标识符或名称属性,它应该与新创建的SNI相关联。

  • 请求体
  1. name:与给定证书关联的SNI名称。
  2. tags(可选):与SNI相关联的一组可选字符串,用于分组和筛选。
  3. certificate:要与SNI主机名关联的证书的id(一个UUID)。该证书必须有一个与之关联的有效私钥,以便SNI对象使用。用表单编码的方式是certificate.id=<certificate id>,使用JSON的方式是:"certificate":{"id":"<certificate id>"}。
  • 响应结果
HTTP 201 Created
{
    "id": "91020192-062d-416f-a275-9addeeaffaf2",
    "name": "my-sni",
    "created_at": 1422386534,
    "tags": ["user-level", "low-priority"],
    "certificate": {"id":"a2e013e8-7623-4494-a347-6d29108ff68b"}
}

SNI列表

  • 获取SNI列表
  1. 地址:/snis。
  2. 请求方式:GET。
  • 获取与指定证书关联的SNI列表
  1. 地址:/certificates/{certificate name or id}/snis。
  2. 请求方式:GET。

解释:certificate name 或 id(必须):要检索其SNI的证书的唯一标识符或名称属性。在使用此端点时,将只列出与指定证书关联的SNI。

  • 响应结果
HTTP 200 OK
{
"data": [{
    "id": "147f5ef0-1ed6-4711-b77f-489262f8bff7",
    "name": "my-sni",
    "created_at": 1422386534,
    "tags": ["user-level", "low-priority"],
    "certificate": {"id":"a3ad71a8-6685-4b03-a101-980a953544f6"}
}, {
    "id": "b87eb55d-69a1-41d2-8653-8d706eecefc0",
    "name": "my-sni",
    "created_at": 1422386534,
    "tags": ["admin", "high-priority", "critical"],
    "certificate": {"id":"4e8d95d4-40f2-4818-adcb-30e00c349618"}
}],

    "next": "http://localhost:8001/snis?offset=6378122c-a0a1-438d-a5c6-efabae9fb969"
}

检索SNI

  • 搜索SNI
  1. 地址:/snis/{sni name or id}。
  2. 请求方式:GET。

解释:sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 搜索与指定证书关联的SNI
  1. 地址:/certificates/{certificate id}/snis/{sni name or id}。
  2. 请求方式:GET。

解释:

certificate id(必须):要检索的证书的唯一标识符。

sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 响应结果
HTTP 200 OK
{
    "id": "91020192-062d-416f-a275-9addeeaffaf2",
    "name": "my-sni",
    "created_at": 1422386534,
    "tags": ["user-level", "low-priority"],
    "certificate": {"id":"a2e013e8-7623-4494-a347-6d29108ff68b"}
}

更新SNI

  • 更新SNI
  1. 地址:/snis/{sni name or id}。
  2. 请求方式:PATCH。

解释:sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 更新与指定证书关联的SNI
  1. 地址:/certificates/{certificate id}/snis/{sni name or id}。
  2. 请求方式:PATCH。

解释:

certificate id(必须):要检索的证书的唯一标识符。

sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 请求体
  1. name:与给定证书关联的SNI名称。
  2. tags(可选):与SNI相关联的一组可选字符串,用于分组和筛选。
  3. certificate:要与SNI主机名关联的证书的id(一个UUID)。该证书必须有一个与之关联的有效私钥,以便SNI对象使用。用表单编码的方式是certificate.id=<certificate id>,使用JSON的方式是:"certificate":{"id":"<certificate id>"}。
  • 响应结果
HTTP 200 OK
{
    "id": "91020192-062d-416f-a275-9addeeaffaf2",
    "name": "my-sni",
    "created_at": 1422386534,
    "tags": ["user-level", "low-priority"],
    "certificate": {"id":"a2e013e8-7623-4494-a347-6d29108ff68b"}
}

更新或创建SNI

  • 更新或创建SNI
  1. 地址:/snis/{sni name or id}。
  2. 请求方式:PUT。

解释:sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 更新或创建与指定证书关联的SNI
  1. 地址:/certificates/{certificate id}/snis/{sni name or id}。
  2. 请求方式:PUT。

解释:

certificate id(必须):要检索的证书的唯一标识符。

sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 请求体
  1. name:与给定证书关联的SNI名称。
  2. tags(可选):与SNI相关联的一组可选字符串,用于分组和筛选。
  3. certificate:要与SNI主机名关联的证书的id(一个UUID)。该证书必须有一个与之关联的有效私钥,以便SNI对象使用。用表单编码的方式是certificate.id=<certificate id>,使用JSON的方式是:"certificate":{"id":"<certificate id>"}。

使用请求体中指定的定义内容插入(或替换)请求资源下的SNI。SNI将通过name或id属性进行标识。

当name或id属性具有UUID结构时,被插入/替换的插件将通过其id来标识,否则将通过其name来标识。

当创建一个新的插件而没有指定id(既不在URL中也不在主体中)时,它将自动生成。

请注意:不允许在URL中指定名称,而在请求体中指定不同的名称

  • 响应结果
HTTP 201 Created or HTTP 200 OK

请查看POST和PATCH的响应结果。

删除SNI

  • 删除SNI
  1. 地址:/snis/{sni name or id}。
  2. 请求方式:DELETE。

解释:sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 删除与指定证书关联的SNI
  1. 地址:/certificates/{certificate id}/snis/{sni name or id}。
  2. 请求方式:DELETE

解释:

certificate id(必须):要检索的证书的唯一标识符。

sni name 或id(必须):要检索的SNI的唯一标识符或名称。

  • 响应结果
HTTP 204 No Content

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表