gpt4 book ai didi

ssl - 带有延迟的扭曲 SNI

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:52 34 4
gpt4 key购买 nike

在我们的系统中,虚拟主机配置存储在redis中。在连接设置期间,当收到 SNI 时,我们想查询 redis 以获取用于 TLS 连接的正确证书和 key 对,并创建一个附加的新 Context 实例。

大部分代码类似于此处接受的答案:Twisted listenSSL virtualhosts

我们面临的问题是,由于访问证书涉及额外的网络操作,我们希望使 set_tlsext_servername_callback 函数返回延迟。

有没有办法告诉 Twisted/pyOpenSSL 等到延迟触发?

编辑:我发现这个链接看起来很有希望,但没有提供解决方案:https://mta.openssl.org/pipermail/openssl-dev/2015-January/000480.html

最佳答案

您可以在此处找到 Twisted 和 SNI 的示例:https://pypi.python.org/pypi/txsni .我真的非常希望回调能够接受延迟。我认为做到这一点的方法是暂停底层传输,不再向内或向外传送任何进一步的字节 (stopReading/stopWriting),然后在Deferred 在完成剩余的 SNI 舞蹈之后触发。但是,我什至不确定使用 OpenSSL 这是否可能,因为 SNI 是与 ClientHello 的其余部分一起接收的,您可能需要能够立即使用react提供正确的证书。在这种最坏的可能情况下,您可以将收到的第一个字节 block 输入虚拟内存 BIO,等待 TLS 握手,将其丢弃并且永远不会传递任何生成的响应,并且然后在您决定使用哪个上下文对象之前不要初始化您的“真正的”子传输。

希望这对您有所帮助 - 如果您弄明白了,请为 TxSNI 或 Twisted 贡献一个补丁!

关于ssl - 带有延迟的扭曲 SNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33130069/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com