网站首页 > 技术教程 正文
Kong提供了一种基于每个连接动态提供TLS证书的方法。TLS证书直接由核心处理,并通过管理API进行配置。通过TLS连接到Kong的客户端必须支持服务器名称指示扩展才能使用此特性。
TLS证书由Kong管理API的两个资源处理:
- /certificates,存储您的密钥和证书。
- /snis,它将注册证书与服务器名称指示关联起来。
您可以在Admin API参考资料中找到这两个参考资料的文档。
下面是如何在给定的路径上配置TLS证书:首先,通过Admin API上传您的TLS证书和密钥:
$ curl -i -X POST http://localhost:8001/certificates \
-F "cert=@/path/to/cert.pem" \
-F "key=@/path/to/cert.key" \
-F "snis=*.tls-example.com,other-tls-example.com"
HTTP/1.1 201 Created
...
snis表单参数是一个装饰参数,直接插入一个SNI并将上传的证书关联到它。
注意,上面snis中定义的一个SNI名称包含一个通配符(*.tls-example.com)。SNI可以在最左边(前缀)或最右边(后缀)位置包含一个通配符。这在维护多个子域时非常有用。使用通配符名称配置的单个sni可以用于匹配多个子域,而不是为每个子域创建一个sni。
有效的通配符位置是mydomain.*, *.mydomain.com和*.www.mydomain.com。
在Kong配置中,可以使用以下参数添加默认证书:
- ssl_cert
- ssl_cert_key
或者通过动态配置SNI为*的默认证书:
$ curl -i -X POST http://localhost:8001/certificates \
-F "cert=@/path/to/default-cert.pem" \
-F "key=@/path/to/default-cert.key" \
-F "snis=*"
HTTP/1.1 201 Created
...
snis的匹配遵循以下优先级:
- 确切的SNI匹配证书
- 根据前缀通配符搜索证书
- 通过后缀通配符搜索证书
- 搜索与SNI关联的证书*
- 文件系统上的默认证书
您现在必须在Kong内登记下列路由。为了方便起见,我们将只使用主机头来匹配此路由的请求:
$ curl -i -X POST http://localhost:8001/routes \
-d 'hosts=prefix.tls-example.com,other-tls-example.com' \
-d 'service.id=d54da06c-d69f-4910-8896-915c63c270cd'
HTTP/1.1 201 Created
...
现在可以预计Kong通过HTTPS提供路线:
$ curl -i https://localhost:8443/ \
-H "Host: prefix.tls-example.com"
HTTP/1.1 200 OK
...
在建立连接和协商TLS握手时,如果客户端将prefix.tls-example.com作为SNI扩展的一部分发送,Kong将提供之前配置的cert.pem证书。对于HTTPS和TLS连接来说,这是相同的。
限制客户端协议(HTTP/HTTPS, GRPC/GRPCS, TCP/TLS)
路由有一个protocols属性来限制它们应该侦听的客户端协议。这个属性接受一组值,可以是“http”、“https”、“grpc”、“grpcs”、“tcp”或“tls”。
使用http和https的路由将接受这两种协议中的流量:
{
"hosts": ["..."],
"paths": ["..."],
"methods": ["..."],
"protocols": ["http", "https"],
"service": {
"id": "..."
}
}
不指定任何协议也有同样的效果,因为路由默认为["http", "https"]。
然而,仅使用https的路由将只接受https上的流量。如果TLS终止之前发生在一个受信任的IP上,它也会接受未加密的流量。如果请求来自trusted_ips中的一个已配置ip,并且头被设置为:X-Forwarded-Proto: https,终止被认为是有效的:
{
"hosts": ["..."],
"paths": ["..."],
"methods": ["..."],
"protocols": ["https"],
"service": {
"id": "..."
}
}
如果一个像上面这样的路由匹配了一个请求,但该请求是明文的,没有有效的之前的TLS终止,Kong响应:
HTTP/1.1 426 Upgrade Required
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: Upgrade
Upgrade: TLS/1.2, HTTP/1.1
Server: kong/x.y.z
{"message":"Please use HTTPS protocol"}
从Kong 1.0开始,可以在protocols属性中使用“TCP”创建原始的TCP(不一定是HTTP)连接的路由:
{
"hosts": ["..."],
"paths": ["..."],
"methods": ["..."],
"protocols": ["tcp"],
"service": {
"id": "..."
}
}
同样,我们可以创建接受原始TLS流量的路由(不一定是HTTPS),其值为“TLS”:
{
"hosts": ["..."],
"paths": ["..."],
"methods": ["..."],
"protocols": ["tls"],
"service": {
"id": "..."
}
}
只有TLS的路由只接受TLS上的流量。
同时接受TCP和TLS也是可能的:
{
"hosts": ["..."],
"paths": ["..."],
"methods": ["..."],
"protocols": ["tcp", "tls"],
"service": {
"id": "..."
}
}
为了让L4 TLS代理工作,有必要创建接受TLS协议的路由,以及上传适当的TLS证书,并将其sni属性正确设置为传入连接的sni匹配的值。
- 上一篇: SSL&TLS渗透测试 渗透测试认证
- 下一篇: 史上超全动物英文名称汇总及配图!
猜你喜欢
- 2024-10-11 Deno 是面向代码的浏览器? 360安全浏览器f12不弹出调试代码
- 2024-10-11 我用 Rust 编程的这两年 rust 界面编程
- 2024-10-11 开源鸿蒙OpenHarmony 5.0.0 Release发布
- 2024-10-11 SSL\TLS中间人攻击 https能避免中间人攻击
- 2024-10-11 一文读懂 HTTP/1、HTTP/2、HTTP/3
- 2024-10-11 群晖 Synology 发布 NAS 系统 DSM 7.0 正式版本
- 2024-10-11 《皇牌空战7:未知空域》第一弹DLC今日上线!预告赏
- 2024-10-11 HTTPS 温故知新(三)——直观感受 TLS 握手流程(中)
- 2024-10-11 超实用压力测试工具-ab工具 ab 压测工具
- 2024-10-11 HTTPS 温故知新(五)——TLS 中的密钥计算
你 发表评论:
欢迎- 05-14喜报!双色球5注824万头奖花落辽宁等地,开奖情况一览
- 05-14双色球新一期前瞻:红球蓝球走势深度剖析,精选号码提前看
- 05-1449倍、33倍、30倍、15倍!双色球第25053期开奖:多张倍投票集结
- 05-14双色球25054期:红球:04、05、15、18、29、33 蓝球:05、08
- 05-14厉害了!495倍独蓝票、万元独蓝票双双报喜!双色球第25053期开奖
- 05-14双色球25054期!龙头02凤尾31,独蓝14稳中,连号20-21围剿奖池!
- 05-14双色球25054期参考:蓝球侧重选2路蓝,红球依然三金胆、重号先
- 05-14双色球25054期:独蓝04,头01尾30,连号15-16,6+1精选
- 最近发表
-
- 喜报!双色球5注824万头奖花落辽宁等地,开奖情况一览
- 双色球新一期前瞻:红球蓝球走势深度剖析,精选号码提前看
- 49倍、33倍、30倍、15倍!双色球第25053期开奖:多张倍投票集结
- 双色球25054期:红球:04、05、15、18、29、33 蓝球:05、08
- 厉害了!495倍独蓝票、万元独蓝票双双报喜!双色球第25053期开奖
- 双色球25054期!龙头02凤尾31,独蓝14稳中,连号20-21围剿奖池!
- 双色球25054期参考:蓝球侧重选2路蓝,红球依然三金胆、重号先
- 双色球25054期:独蓝04,头01尾30,连号15-16,6+1精选
- 一号之差!井喷1416注,5注一等奖,100注二等,双色球25053开奖
- 双色球25054期:1、5尾,头单,尾双,斜连三码,胆11、12、27
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)