如何解决基于证书“串行”字段的 TLS 平衡器
我目前在客户端部署了许多设备(“D1”、“D2”、...),它们使用 TLS 连接到我的服务器(“S1”)。现在我希望(仅)其中的一部分与新服务器(“S2”)进行通信。 我唯一标识客户端的唯一方法是基于连接打开时证书的“串行”字段。我无法更改设备端的任何内容。
理想情况下,我想要一个未终止的代理/平衡器,它根据证书的串行字段通过 S1 或 S2 重定向 TLS 连接。我不想在平衡器端终止,以免需要生产证书、密钥、...(以及它暗示的安全威胁)。
根据我的知识,这是我的设想:
但是所有设备都在 S1 或 S2 上
将“ClientHello”从 D1 转发到 S1 和 S2,将“ServerHello,...,ServerHellodone”从 S1 或 S2 转发到 D1,根据“ClientKeyExchange”“serial”字段选择 S1 或S2 用于后面的消息
如果“ServerHello,ServerHellodone”由 S1 完成,我预计连接会中断一半,但连接稍后会在 S2 上继续
将所有数据包随机转发到S1或S2,一旦D1发送“ClientKeyExchange”,如果是错误的服务器,则断开连接,等待D1重试
最终这会起作用,但我想避免让 D1 重试 10 次以打开连接,因为它不走运
使用终止的平衡器(如带有选项“ssl_c_serial”的HAproxy)
这需要生产证书,密钥,...,我想避免它
这甚至可能吗?我的意思是,由于 D1 发送的第一个数据包中不包含“串行”,因此无法识别它,直到为时已晚。希望有一些我没有想到的东西。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。